【问题标题】:Filter the log messages passed to the parent logger by level (logback)按级别过滤传递给父记录器的日志消息(logback)
【发布时间】:2014-10-21 23:01:49
【问题描述】:

在我看来,我想要实现的目标很常见,但我没有让它发挥作用:

我有一个用于根记录器的附加程序,它只记录任何冒泡到根的内容。我还有一个附加到更具体的记录器的附加程序。特定的记录器具有级别 INFO 但我只希望 ERROR 消息冒泡到根目录。实现这一目标的最佳方法是什么?

根记录器可能会记录从其他特定记录器传递的 INFO 消息,但对于这个特定记录器,我不希望任何 INFO 消息向上传递。

【问题讨论】:

    标签: logging logback


    【解决方案1】:

    logback: Two appenders, multiple loggers, different levels

    <appender name="RootAppender" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <filter class="com.myapp.ThresholdLoggerFilter">
            <logger>TheLoggerFromWhichYouWantOnlyErrorOnTheRoot</logger>
            <level>ERROR</level>
        </filter>
    </appender>
    

    事实证明,它实际上并不是那么常见或简单的用例,但它是可能的。

    【讨论】:

    • 谢谢。我已经找到了,但我希望有一个没有自定义过滤器的更简单的解决方案。我也不喜欢它取决于附加程序。我的根记录器有两个附加程序,所以我必须将过滤器添加到两者。在特定记录器级别抑制非错误事件会更好。不过,感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2013-08-06
    • 2016-02-20
    • 2011-12-11
    • 1970-01-01
    • 2020-01-19
    • 2019-10-10
    • 1970-01-01
    • 2020-05-02
    相关资源
    最近更新 更多