首页 > 解决方案 > 在 logback.xml 中禁用 DEBUG 级别日志,保留 INFO 和 ERROR 级别日志

问题描述

我的 logback.xml 看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <jmxConfigurator/>
  <statusListener class="ch.qos.logback.core.status.NopStatusListener"/>

  <property name="LOG_DIR" value="/tmp/logs"/>
  <springProperty name="appName" source="spring.application.name"/>
  <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT">
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>
        some pattern
      </Pattern>
    </layout>
  </appender>

  <logger additivity="false" level="DEBUG"
    name="xyz">
    <appender-ref ref="STDOUT"/>
  </logger>
  <root level="ERROR">
    <appender-ref ref="STDOUT"/>
  </root>
</configuration>

我正在尝试从整个应用程序中禁用 DEBUG 日志,但找不到这样做的方法。我想打印 INFO、ERROR 级别的日志。

标签: springlog4jlogbackslf4jdisable

解决方案


您可以将唯一的根记录器保留为INFO级别。这意味着它只会记录INFOWARNERROR。但是,似乎WARN不是您想要记录的内容。

或者,您可以使用LevelFilter 之类的过滤器。以下是您可以通过提供的链接找到的文档中的示例。

<configuration>
  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <filter class="ch.qos.logback.classic.filter.LevelFilter">
      <level>INFO</level>
      <onMatch>ACCEPT</onMatch>
      <onMismatch>DENY</onMismatch>
    </filter>
    <encoder>
      <pattern>
        %-4relative [%thread] %-5level %logger{30} - %msg%n
      </pattern>
    </encoder>
  </appender>
  <root level="DEBUG">
    <appender-ref ref="CONSOLE" />
  </root>
</configuration>

推荐阅读