您可以使用SourceSwitch来跟踪不同级别的消息。首先添加一些设置app.config
<system.diagnostics>
<sources>
<source name="TraceTest" switchName="SourceSwitch"
switchType="System.Diagnostics.SourceSwitch">
<listeners>
<!-- choose one or use multiple TraceListeners -->
<add name="console" type="System.Diagnostics.ConsoleTraceListener"
initializeData="false"/>
<add name="file" type="System.Diagnostics.TextWriterTraceListener"
initializeData="error.log"/>
<remove name ="Default"/>
</listeners>
</source>
</sources>
<switches>
<!-- MSDN: 4 verbose Information, Information 3, Warning 2, Error 1, -->
<add name="SourceSwitch" value="Error"/>
</switches>
<trace autoflush="true" indentsize="4"/>
</system.diagnostics>
在您的应用程序中,您可以使用引用 app.config 中定义的名称的TraceSource对象来跟踪消息
TraceSource ts = new TraceSource("TraceTest");
ts.TraceEvent(TraceEventType.Information, 123, "event info");
ts.TraceEvent(TraceEventType.Error, 123, "event error");
ts.TraceEvent(TraceEventType.Warning, 123, "event warning");
ts.TraceInformation("any text");
ts.Flush();
ts.Close();
有关一些常见信息,请查看MSDN上的How to: Use TraceSource ...。使用 Google 博士,我在 SO 上发现了一个相关问题,指的是一篇关于这个问题的非常好的博文。
我想指出一件事...
更改侦听器写入跟踪消息的级别
配置文件在应用程序初始化时初始化跟踪源的设置。要更改这些设置,您必须更改配置文件并重新启动应用程序或使用 TraceRefresh 方法以编程方式刷新应用程序。应用程序可以动态更改配置文件设置的属性以覆盖用户指定的任何设置。例如,您可能希望确保始终将关键消息发送到文本文件,而不管当前的配置设置如何。