我不想StreamWriter
向 Write-To-File 过程添加参数,但是当我尝试使用一次性 StreamWriter 时,我得到:
An unhandled exception of type 'System.ObjectDisposedException' occurred in mscorlib.dll
Additional information: Cannot write to a closed TextWriter.
代码:
let fileLogger = {
new IFlog with
member i.FLog level format =
use file = LogFile()
Printf.kfprintf
(fun f ->
fprintfn file "[%s][%A] "
<| level.ToString()
<| DateTime.Now
) file (format)
所以当我两次调用 FLog 方法时,我得到了这个。
我可以像这样使用它:member i.FLog file level format
并在顶层控制一次性对象,但后来我失去了所有的抽象。
有没有办法使用这样的一次性物品?或者我怎样才能改变架构以避免将一次性参数传递给这个函数?
日志文件是:
let mutable LogFileName = "F.log"
let LogFile() =
match File.Exists(LogFileName) with
| false -> File.CreateText(LogFileName)
| true -> File.AppendText(LogFileName)