【问题标题】:Trace.Flush() - Will data get written to TextWriterTraceListener immediately?Trace.Flush() - 数据会立即写入 TextWriterTraceListener 吗?
【发布时间】:2014-06-11 22:04:34
【问题描述】:

如果在每次写入消息时使用自动刷新或手动刷新,我在 Visual Studio 中调试时注意到了一些问题,即使启用 AutoFlush = true,我也看不到写入文件的数据。该文件仅在我停止调试器时才会更新。这使我相信数据仅在特定时间或程序完成时才被刷新。

或者这是调试的副作用,在实际程序中它的行为会有所不同?

什么时候会写入数据?马上,还是在某些事件或时间之后?

编辑:我确实在 Visual Studio 的调试输出窗口中看到了输出消息,只是在文件中没有。

【问题讨论】:

  • 您使用的是 log4net 还是其他库?如果您正在使用,请添加适当的标签并包括您的 appender 的 log4net 配置。
  • @ScottChamberlain 不仅仅是基本的 .net Trace 和 TraceSource。但我想我发现原因是缓冲区需要填充到一定数量才能写入文件。当我使用更大的消息时,文件更新了。

标签: c# .net


【解决方案1】:

我想我在这里找到了解释 Trace file isn't being created even though TraceEvent is called?

“写入器在其内部缓冲区填满时刷新到磁盘,如果内存为我服务,则默认缓冲区大小为 8KB。这不是跟踪侦听器的一个方面,而是它写入的底层文件流。”

【讨论】:

    猜你喜欢
    • 2021-10-06
    • 2022-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多