コンソールにログを記録する機能があります
Printf.kprintf
(printfn
"[%s][%A] %s"
<| level.ToString()
<| DateTime.Now)
format // fprint to System.Console.Out maybe
しかし、それは Printf.StringFormat をフォーマットとして使用しているため、同じロジックに従ってファイルに出力したいと考えています。
だから私は試します
Printf.kfprintf
(fun f ->
fprintfn file "[%s][%A] "
<| level.ToString()
<| DateTime.Now
) file (format)
そして、私が理解できないことが2つあります。なぜunit -> 'A
代わりにあるのstring -> 'A
ですか?どのように使用すればよいですか?そして、StringFormat
ここをとして使用できますTextWriterFormat
か?
これに関するもう1つの問題は、最初のスニペットで継承format
することですが、kfprintfでは、フォーマットメッセージがあり、ものの前に表示string -> 'Result
されるため、継承できません。何とか継承できると思いますが、良い例が見つかりません。見つかったのはF#コンパイラの一部だけです:unit -> 'Result
[x][x]
format
f
[<CompiledName("PrintFormatToTextWriter")>]
let fprintf (os: TextWriter) fmt = kfprintf (fun _ -> ()) os fmt
[<CompiledName("PrintFormatLineToTextWriter")>]
let fprintfn (os: TextWriter) fmt = kfprintf (fun _ -> os.WriteLine()) os fmt
しかし、どうすればこれを使用できますunit
か? メッセージの後にメッセージを投稿するにはどうすればよいですか?