我使用.net框架类TraceSource
和TraceListener
进行日志记录。它们在我的app.config
文件中配置。相同的TraceSource可以记录到写入不同日志文件的多个不同TraceListener。
现在我想从特定的TraceSource中过滤TraceEvents,但只针对一个TraceListener而不是另一个
在我的app.config
文件中,我有一些共享的TraceListeners:
<sharedListeners>
<add name="log1" type="MyTraceListener,MyAssembly" initializeData="log1.log"/>
<add name="log2" type="MyTraceListener,MyAssembly" initializeData="log2.log"/>
<add name="logWarning" type="MyTraceListener,MyAssembly" initializeData="logWarning.log">
<filter type="System.Diagnostics.EventTypeFilter" initializeData="Warning"/>
</add>
</sharedListeners>
我已经配置了一些TraceSources
<source name="Foo" switchValue="All">
<listeners>
<add name="log1"></add>
<add name="log2"></add>
<add name="logWarning"></add>
</listeners>
</source>
<source name="Bar" switchValue="All">
<listeners>
<add name="log1"></add>
<add name="log2"></add>
<add name="logWarning"></add>
</listeners>
</source>
监听器logWarning
仅从所有来源接收严重性为warning
或更高级别的TraceEvents。到目前为止一切都很好。
现在我想配置一个监听器log2
,仅接收来自源Foo
的警告,但仍然是来自源bar
的所有警告。听众log1
还应该收到来自Foo
和bar
的所有内容。
这是什么问题的app.config语法?