filter - 您可以在 log4net 中过滤记录器级别吗

标签 filter log4net logging

我想过滤掉包含指定字符串的消息。我用过 log4net.Filter.StringMatchFilter但这仅适用于附加程序。

我想已经在 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>

这种方式真的可能吗?或者有没有不同的方法来处理这种情况。

最佳答案

过滤器仅用于附加程序。如果您需要过滤掉多个 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>

关于filter - 您可以在 log4net 中过滤记录器级别吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/751368/

相关文章:

haskell - 您将如何在 Haskell 中使用 foldr 定义映射和过滤器?

Python 3.3 库 abpy,文件未定义

asp.net - Orchard CMS 如何进行日志记录?

log4net - 通过 XML 文件*和*代码配置 log4net appender

java - 如何在 Java 中以编程方式记录传递给方法的参数

django - 如何通过带注释的字段对组合查询集进行排序?

spring - 如何在 Spring Boot 应用程序中禁用 DefaultSecurityFilterChain?

c# - 如何配置 log4net 以便可以将对象的属性映射到日志输出?

logging - 使用 Heroku Platform API 获取日志

java - 如何关闭 tomcat catalina.out 文件的调试和信息日志?