簡體   English   中英

如何隱藏單個Logback記錄器的輸出?

[英]How to hide the output of a single Logback logger?

我在以下情況下使用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級別記錄),但僅此類

不幸的是,以下配置不起作用,因為我仍可以在控制台輸出中看到“注冊的響應模板引擎”。

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

提供的登錄配置有效

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

我能夠復制並粘貼應該用作記錄器名稱的字符串!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM