Ben*_*ndt 12 vb.net oop logging trace diagnostics
这可能更像是一个OOP概念问题,但这就是我想要做的.
我有一个应用程序,使用System.Diagnostics.Trace.WriteLine输出调试信息,以便可以使用DebugView查看它.
我想重写/扩展(不知道正确的术语)这个方法来记录文本文件代替,也许除了跟踪输出.这将允许我为我的应用程序编写一个新的WriteLine方法,并且我可以在应用程序的其余部分保持所有其他System.Diagnostics.Trace.WriteLine语句不变.
那么我将如何在VB.Net应用程序中更改此方法的行为?
Jon*_*eet 27
你绝对致力于仍然使用Trace吗?如果没有,我会使用功能更全面的日志系统,如Log4Net.
但是,如果您确实要使用,Trace则可以重新配置TraceListener与app.config文件一起使用的s .在TraceListenerMSDN文档举个例子有点像这样:
<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>
Run Code Online (Sandbox Code Playgroud)
TextWriterTraceListener将日志转储到给定文件.(还有其他选择.)
或者,您可以以编程方式执行此操作:
Trace.Listeners.Add(new TextWriterTraceListener("foo.log"));
Run Code Online (Sandbox Code Playgroud)
请注意,您可能需要在应用退出之前显式刷新跟踪,方法是:
Trace.Flush();
Run Code Online (Sandbox Code Playgroud)
或者更复杂:
foreach (TraceListener listener in Trace.Listeners)
{
listener.Flush();
}
Run Code Online (Sandbox Code Playgroud)
(我只提到它,因为我必须在测试时!)
编辑:如评论中所述,如果你很高兴每次写入后都会刷新监听器(这样可以避免在最后刷新,但可能会损害性能),你可以设置Trace.AutoFlush为true(包括在XML中 - 参见autoflush属性) ).
| 归档时间: |
|
| 查看次数: |
22748 次 |
| 最近记录: |