2015-06-27 49 views
0

我在下面的情況如何隱藏單個Logback記錄器的輸出?

package ninja.template; 
public class TemplateEngineManagerImpl implements TemplateEngineManager { 

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

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

使用logback,我想隱藏INFO輸出這一切TemplateEngineManagerImpl類(或所有輸出 - 類只記錄在INFO水平),但這個類只

不幸的是,以下配置不起作用,因爲我仍然可以在控制檯輸出中看到「已註冊的響應模板引擎」。

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

回答

0

所提供的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> 

我能夠複製並粘貼應該用作記錄器名稱的串!