代码之家  ›  专栏  ›  技术社区  ›  Rashack

您可以在log4net中的记录器级别进行过滤吗

  •  4
  • Rashack  · 技术社区  · 15 年前

    log4net.Filter.StringMatchFilter 但这只适用于追加者。

    我想在记录器级别上过滤该消息。大致如下:

    <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>
    

    这真的有可能吗?还是有不同的方法来处理这种情况。

    1 回复  |  直到 15 年前
        1
  •  11
  •   Peter Lillevold Rene    15 年前

    过滤器仅用于附加器。如果需要筛选多个附件的事件,可以使用forwardingappender进行预筛选。这样可以避免在多个附加器上复制和粘贴相同的筛选器。

    您的示例如下所示:

    <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>