我想保留一个日志文件,我正在使用TextWriter / StreamWriter将消息写入我的日志文件。我在写完邮件后调用TextWriter.Flush(),但我的消息仍然没有立即显示。它只会在我调用Close时出现,我不想一直重新打开并关闭文件只是为了立即查看消息。
答案 0 :(得分:5)
您可能想尝试自己构建一个FileStream,将FileOptions.WriteThrough传递给构造函数。然后使用该FileStream构造StreamWriter。 WriteThrough选项绕过缓存。
答案 1 :(得分:3)
您还可以将StreamWriter.AutoFlush
属性设置为true。这样,写入StreamWriter的任何内容都会立即写入磁盘(每次调用Write
后)。
来自AutoFlush上的MSDN documentation:
获取或设置一个指示的值 StreamWriter是否会刷新 它对底层流的缓冲区 每次打电话之后 StreamWriter..Write。
马克
答案 2 :(得分:0)
确保使用读共享访问权限打开日志文件,允许文件的所有后续打开以进行读取,但拒绝写访问权限。这样您就可以从另一个程序监视日志。