如何在 net 4.0 c# 项目中定义一个默认的 TraceListener,它会自动添加到所有 TraceSources 中?
目前我必须列出我在 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>
除非另有说明,否则我正在使用应接收来自所有 TraceSource 的所有输出的 SharedListener。使用上述语法,这需要为每个 TraceSource 手动输入。
每当我引入一个带有新 TraceSource 的新类时,我都必须更新 App.Config。如果多个程序使用该程序集,我必须更新多个 App.Config。更新这些条目时的拼写错误不会产生任何错误,它只会默默地忽略来自正确源的所有跟踪输出。
有没有办法可以通过 App.config 设置默认的 TraceListener,这样如果我想偏离默认值,我只需要命名特定的 TraceSources?