在我的 app.config 中,我想设置 3 个跟踪级别(开关?):详细、警告和无。在代码的调试版本中,我希望详细开关处于活动状态,在发布中我想要警告。在特殊情况下,我的应用程序用户可以修改配置文件以禁用所有跟踪。
我希望在控制台上输出调试跟踪,而仅将跟踪发布到日志文件。
我写了以下内容:
[...]
<system.diagnostics>
<sources>
<!-- This section defines the logging configuration for My.Application.Log -->
<source name="debug" switchName="debug">
<listeners>
<add name="FileLog"/>
<add name="console"/>
</listeners>
</source>
<source name="release" switchName="release">
<listeners>
<add name="FileLog"/>
</listeners>
</source>
<source name="silent" switchName="none">
<listeners/>
</source>
</sources>
<switches>
<add name="debug" value="Verbose"/>
<add name="release" value="Warning"/>
<add name="none" value="Off"/>
</switches>
<!--<sharedListeners>
<add name="FileLog" type="System.Diagnostics.TextWriterTraceListener" traceOutputOptions="DateTime" initializeData="felix.log"/>
<add name="console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false" />
</sharedListeners>-->
<trace autoflush="false" indentsize="4">
<listeners>
<add name="FileLog" type="System.Diagnostics.TextWriterTraceListener" traceOutputOptions="DateTime" initializeData="felix.log"/>
<add name="console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false"/>
<remove name="Default"/>
</listeners>
</trace>
</system.diagnostics>
[...]
然后在代码中我这样调用跟踪:
Public Shared Sub HandleException(ByVal ex As Exception)
Trace.WriteLine(ex.Message, "Error")
[...]
我想我缺少一些东西。我如何对 Trace 方法说正确的开关使用?我的应用程序用户如何更改配置文件以允许跟踪或禁用它?
谢谢。