【问题标题】:Reconfigure logback ThresholdFilter level dynamically or based on caller?动态或基于调用者重新配置 logback ThresholdFilter 级别?
【发布时间】:2015-10-07 11:24:45
【问题描述】:

我正在使用 logback 将 TRACE 记录到文件并将 DEBUG 记录到控制台以及在 STDOUT appender 中使用 ThresholdFilter 类似于下面的配置。

实用程序类FooUtils 进行大量跟踪,通常我只希望它在文件中,而不是控制台中,但是当BarGeneratormain 方法使用此类时,我想查看输出通过降低阈值或其他方式从控制台中的FooUtils。有可能吗?

<configuration>
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
        <file>foo.log</file>
        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
        <encoder>
            <pattern>%msg%n</pattern>
        </encoder>
    </appender>

    <root level="TRACE">
        <appender-ref ref="FILE"/>
        <appender-ref ref="STDOUT"/>
    </root>
</configuration>

【问题讨论】:

    标签: java logging logback


    【解决方案1】:

    您可以在 BarGenerator 的 main 方法中指定 mapped diagnostic context 属性。只要您留在同一个线程中,所有记录的消息都将使用此属性进行标记,您可以在 appender 中根据此属性对其进行过滤。

    【讨论】:

      猜你喜欢
      • 2019-06-25
      • 2018-03-13
      • 2015-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-19
      • 2012-10-21
      • 2021-08-13
      相关资源
      最近更新 更多