我刚刚开始使用log4net,并且在使用字符串进行过滤方面存在一些问题。
我正在尝试删除我的log4net日志文件中的EPiServer特定日志记录,因为我对它不感兴趣。
我为appender提供了以下log4net配置:
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG" />
</filter>
<filter type="log4net.Filter.StringMatchFilter">
<stringToMatch value="EPiServer" />
<acceptOnMatch value="false" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
我只有一个根记录器。此配置不会停止EPiServer日志记录。
我做错了什么?
答案 0 :(得分:2)
尝试将StringMatchFilter更改为LoggerMatchFilter
<filter type="log4net.Filter.LoggerMatchFilter">
<loggerToMatch value="EPiServer" />
<acceptOnMatch value="false" />
</filter>
StringMatchFilter过滤日志消息的内容,其中LoggerMatch过滤Logger的类Name或partial Namespace
答案 1 :(得分:1)
您应该删除该行
<filter type="log4net.Filter.DenyAllFilter" />
来自docs:
您可以将此过滤器添加到过滤器链的末尾以进行切换 默认情况下“除非另有说明,否则接受所有”过滤 除非另有说明,否则“拒绝一切”的行为。
除非使用<filter>
<acceptOnMatch value="true" />
内明确列入白名单,否则会有效地撤消拒绝所有邮件的逻辑