log4net过滤模式和级别

时间:2010-10-21 14:58:29

标签: log4net

我想通过由(阈值AND模式)组成的过滤器来过滤我的log4net输出。因此,我希望仅在级别为“错误”(或更高)的情况下允许具有模式“x”的日志,并且只有在级别为“INFO”(或更高)的情况下才允许具有模式“y”的日志。我可以在一个appender中执行此操作,还是需要两个appender,每个appender都有自己的模式过滤器和阈值?

2 个答案:

答案 0 :(得分:1)

Log4net允许您链接过滤器,但这仅作为“OR”。我想你也可以让它做一个“AND”操作但不是你想要的。我会编写自己的过滤器来检查级别和模式是否匹配。然后链接此过滤器的两个实例以使其检查第一个条件和第二个条件(“OR”操作)。不要忘记最后的DenyAllFilter

我写了一个自定义过滤器once,这可能对创建过滤器很有帮助。

两个appender可能是一种解决方法,但是如果你想登录到一个文件,你就会遇到可以解决的锁定问题(性能损失)。

答案 1 :(得分:0)

您应该看看有人要求使用AND和OR过滤器:Log4Net filters "OR"

据我所知,目前还没有任何实现,但是如果你真的需要它,你可以通过自己继承FilterSkeleton来做到这一点。