2009-10-05 46 views
4

我想保留一个日志文件,并且我正在使用TextWriter/StreamWriter将消息写入我的日志文件。我在写完消息后调用TextWriter.Flush(),但我的消息仍然不会立即显示。它仅在我致电Close时出现,并且我宁愿不重新打开并随时关闭文件,以便立即查看消息。如何立即写入文件?

回答

4

您可能想尝试自己构造一个FileStream,并将FileOptions.WriteThrough传递给构造函数。然后用FileStream构建StreamWriter。 WriteThrough选项绕过缓存。

+0

这种方法仅仅是工作时间的100%,得益于之一。 – esac 2009-10-05 06:26:22

0

确保您打开带有读取共享访问的日志文件,允许随后打开的所有文件读取,但拒绝写入访问。这样你就可以监视另一个程序的日志。

3

您还可以将StreamWriter.AutoFlush属性设置为true。有了这个,写入StreamWriter的任何东西都会立即写入磁盘(在每次调用Write之后)。

MSDN documentation上自动冲洗:

获取或设置指示 所述的StreamWriter是否将每次调用 StreamWriter..Write后冲洗 其缓冲到基础流 的值。

马克