【发布时间】:2010-07-26 18:32:25
【问题描述】:
给定两个附加器:A1、A2 和多个记录器,其中一个是 L1
是否可以这样配置 log4net:
A1 从所有记录器中获取 DEBUG 及以上版本L1 除外,它为其获取 INFO 及以上版本
A2 从所有 logger 获取 DEBUG 及以上
我已经查看了 appender 阈值、过滤器和我能想到的所有其他配置组合,但它们似乎都没有完成上述操作。
【问题讨论】:
给定两个附加器:A1、A2 和多个记录器,其中一个是 L1
是否可以这样配置 log4net:
A1 从所有记录器中获取 DEBUG 及以上版本L1 除外,它为其获取 INFO 及以上版本
A2 从所有 logger 获取 DEBUG 及以上
我已经查看了 appender 阈值、过滤器和我能想到的所有其他配置组合,但它们似乎都没有完成上述操作。
【问题讨论】:
您可以执行以下操作:
我没有测试它,但我不明白为什么这不起作用。
【讨论】:
根据文档:
过滤器形成一个事件必须通过的链。一路上的任何过滤器都可以接受事件并停止处理,拒绝事件并停止处理,或允许事件进入下一个过滤器。如果事件在没有被拒绝的情况下到达过滤器链的末尾,则它被隐式接受并被记录。
所以看起来像这样的东西会起作用(未经测试的伪代码):
A1
Level >= INFO: Accept
Logger == L1: Deny
Level >= DEBUG: Accept
DenyAll
A2
Level >= DEBUG: Accept
【讨论】: