如何隐藏单个Logback记录器的输出?

时间:2015-06-27 11:02:19

标签: java logging logback

我在以下情况中使用logback

package ninja.template;
public class TemplateEngineManagerImpl implements TemplateEngineManager {

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

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

我希望隐藏此INFO类的所有TemplateEngineManagerImpl输出(或所有输出 - 该类仅在INFO级别记录)但仅此类< /强>

不幸的是,以下配置并不起作用,因为我仍然可以看到&#34;已注册的响应模板引擎&#34;在我的控制台输出中。

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

1 个答案:

答案 0 :(得分:0)

提供的回溯配置

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

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