我想创建一个仅记录特定级别和特定记录器的附加程序。根据我所看到的,基于this tutorial,过滤器进行了“或”运算。我如何将log4net与AND4一起过滤?这是我正在做的事的一个例子:
<appender name="MyAppender">
<!--log only INFO level-->
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="INFO" />
</filter>
<!--log only UserController logger-->
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="MyLogger" />
</filter>
<!-- do not log anything else -->
<filter type="log4net.Filter.DenyAllFilter" />
</appender>
最佳答案
您可以编写一个自定义的AndFilter,这很容易。您可以使用此处发布的代码-https://stackoverflow.com/a/8859037/984438
用法如下:
<filter type="Namespace.AndFilter, Assembly">
<!--log only INFO level-->
<filter type="log4net.Filter.LevelMatchFilter">
<levelToMatch value="INFO" />
</filter>
<!--log only UserController logger-->
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="MyLogger" />
</filter>
<acceptOnMatch value="true"/>
</filter>
<!-- do not log anything else -->
<filter type="log4net.Filter.DenyAllFilter" />
关于logging - 如何将AND和Log4net过滤器组合在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8650399/