【问题标题】:How to hide the output of a single Logback logger?如何隐藏单个 Logback 记录器的输出?
【发布时间】:2015-06-27 11:02:18
【问题描述】:

我在以下情况下使用logback

package ninja.template;
public class TemplateEngineManagerImpl implements TemplateEngineManager {

    private final Logger logger = LoggerFactory.getLogger(TemplateEngineManagerImpl.class);

    ... 
    logger.info("Registered response template engines");
    ...

我想隐藏这个 TemplateEngineManagerImpl 类的所有 INFO 输出(或所有输出 - 该类仅在 INFO 级别记录)但仅此类。。 p>

很遗憾,以下配置不起作用,因为我仍然可以在控制台输出中看到“注册的响应模板引擎”。

<configuration>

    <appender name="STDOUT_TERSE" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
      <pattern> | %msg%n</pattern>
    </encoder>
  </appender>

  <logger name="ninja.template.TemplateEngineManagerImpl" level="OFF"/>

  <root level="info">
    <appender-ref ref="STDOUT_TERSE" />
  </root>
</configuration>

注意我也尝试了以下没有结果

 <logger name="ninja.template.TemplateEngineManagerImpl" level="WARN"/>

 <logger name="ninja.template" level="WARN"/>

 <logger name="TemplateEngineManagerImpl" level="WARN"/>

【问题讨论】:

    标签: java logging logback


    【解决方案1】:

    提供的 logback 配置有效

    <logger name="ninja.bodyparser.BodyParserEngineManagerImpl" level="WARN" additive="false"/>
    

    我遇到的错误是字符串记录在两个不同的地方。

    因此,通过使用以下配置显示完整的 logger 名称:

    <appender name="STDOUT_TERSE" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
      <pattern> | %logger | %msg%n</pattern>
    </encoder>
    

    我能够复制并粘贴应该用作记录器名称的字符串!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-13
      • 1970-01-01
      • 2022-12-12
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      相关资源
      最近更新 更多