Hug*_*une 6 .net c# app-config system.diagnostics tracelistener
如何在net 4.0 c#项目中定义一个自动添加到所有TraceSource的默认TraceListener?
目前我必须列出我在App.config文件中使用的每个命名的TraceSource,如下所示:
<system.diagnostics>
<sharedListeners>
<add name="MyListener" type="MyListenerType,MyAssemblyName" />
</sharedListeners>
<sources>
<source name="Class1" switchValue="All">
<listeners><add name="MyListener"></add></listeners>
</source>
<source name="Class2" switchValue="All">
<listeners><add name="MyListener"></add></listeners>
</source>
<source name="Class3" switchValue="All">
<listeners><add name="MyListener"></add></listeners>
</source>
... repeat for a gazillion classes ...
</sources>
<system.diagnostics>
Run Code Online (Sandbox Code Playgroud)
我使用的SharedListener应该接收来自所有TraceSources的所有输出,除非另有说明.使用上述语法,这需要为每个TraceSource手动输入.
每当我介绍一个带有新TraceSource的新类时,我都必须更新App.Config.如果多个程序使用该程序集,我必须更新多个App.Config.更新这些条目时的拼写错误不会产生任何错误,它将默默地省略来自正确源的所有跟踪输出.
有没有办法可以通过App.config设置默认的TraceListener,所以如果我想偏离默认值,我只需要命名特定的TraceSources?