我经常想要将特定的聊天记录器中的日志记录排除到某个级别.不幸的是,以下第一条规则对于该记录器的所有级别都是最终的,因此第二条规则(这只是我的默认规则)不会记录任何内容:
<logger name="ChattyLogger" maxlevel="Warn" writeTo="blackhole" final="true" />
<logger name="*" minlevel="Info" writeTo="default" />
Run Code Online (Sandbox Code Playgroud)
一种可能性是使用过滤器:
<logger name="ChattyLogger" writeTo="blackhole">
<filters>
<when condition="level<=LogLevel.Warn" action="IgnoreFinal" />
</filters>
</logger>
<logger name="*" minlevel="Info" writeTo="default" />
Run Code Online (Sandbox Code Playgroud)
但是语法很难看,特别是长度和逃避条件表达式的需要.
由于这似乎是一个普遍的要求,我想知道我是否忽略了一些东西.
我在Silverlight下使用nlog,但我认为这无关紧要.
试试这个:
<logger name="ChattyLogger" maxlevel="Warn"/>
<logger name="ChattyLogger" minlevel="Error" final="true" writeTo="default"/>
<logger name="*" minlevel="Info" writeTo="default" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4196 次 |
| 最近记录: |