我想过滤掉包含指定字符串的邮件。我使用log4net.Filter.StringMatchFilter
,但这仅适用于appender。
我想在Logger级别上过滤该消息。这些方面的东西:
<logger name="MyLogger.WebServices">
<level value="Debug" />
<filter type="log4net.Filter.StringMatchFilter">
<stringToMatch value="do not log me" />
<acceptOnMatch value="false" />
</filter>
<appender-ref ref="file" />
<appender-ref ref="debug" />
</logger>
这种方式真的有可能吗?或者有不同的方法来处理这种情况。
答案 0 :(得分:11)
过滤器仅用于appender。如果您需要过滤掉几个appender的事件,可以使用forwardingappender进行预过滤。这样就可以避免在几个appender上复制和粘贴相同的过滤器。
您的示例如下所示:
<appender name="screeningAppender" type="log4net.Appenders.ForwardingAppender">
<filter type="log4net.Filter.StringMatchFilter">
<stringToMatch value="do not log me" />
<acceptOnMatch value="false" />
</filter>
<appender-ref ref="file" />
<appender-ref ref="debug" />
</appender>
<logger name="MyLogger.WebServices">
<level value="Debug" />
<appender-ref ref="screeningAppender" />
</logger>