您是否绝对致力于仍然使用 Trace?如果没有,我会使用功能更全面的日志系统,例如Log4Net。
但是,如果您真的想使用,Trace
那么您可以重新配置文件中TraceListener
使用的 s app.config
。TraceListener
MSDN 文档给出了一个有点像这样的例子:
<configuration>
<system.diagnostics>
<trace autoflush="false" indentsize="4">
<listeners>
<add name="fileLogger"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="LogFile.log" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics>
</configuration>
TextWriterTraceListener
将日志转储到给定文件。(还有其他可用选项。)
或者,您可以以编程方式执行此操作:
Trace.Listeners.Add(new TextWriterTraceListener("foo.log"));
请注意,您可能需要在应用退出之前显式刷新跟踪,方法是:
Trace.Flush();
或更复杂的:
foreach (TraceListener listener in Trace.Listeners)
{
listener.Flush();
}
(我只提到它是因为我在测试时必须这样做!)
编辑:如评论中所述,如果您对每次写入后刷新侦听器感到高兴(这样可以避免在最后刷新,但可能会损害性能),您可以设置Trace.AutoFlush
为 true (包括在 XML 中 - 请参阅autoflush
属性)。