跳至主要內容

logback日志级别

Jin大约 2 分钟

logback日志级别

1、日志级别

日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 

Logback级别(由低到高):

  1. TRACE:跟踪级别,是最详细的日志级别,记录应用程序中最详细的信息。

  2. DEBUG:调试级别,记录应用程序的调试信息,通常用于开发和测试阶段。

  3. INFO:信息级别,记录应用程序的重要信息,如启动、停止、连接、断开等。

  4. WARN:警告级别,记录应用程序的警告信息,如资源不足、性能问题等。

  5. ERROR:错误级别,记录应用程序的错误信息,如异常、故障等。

  6. FATAL:致命级别,记录应用程序的致命错误信息,如应用程序崩溃等。

Logback默认的日志级别是INFO,可以通过在logback.xml配置文件中设置root logger的级别来更改默认日志级别。

2、修改第三方包日志级别

2.1、背景

当我们引入第三方依赖时,第三方依赖会打印自己的日志,有的日志对我们来说是无用日志,不需要打印出来,这时我们就需要修改屏蔽或修改第三方日志的打印级别。

2.2、日志不打印评估报告

logging:
  level:
    org:
      springframework:
        boot:
          autoconfigure: error # 日志不打印评估报告
    <!--子节点可以控制我们的代码、框架中日志输出级别等-->
    <logger name="org.springframework.boot.autoconfigure" level='error'>
        <appender-ref ref="CONSOLE"/>
    </logger>

2.3、logback修改第三方包日志打印方式

有以下两种方式

  1. 屏蔽第三方日志打印。
  2. 修改第三方日志打印级别。

屏蔽第三方日志, 修改logback.xml

<logger name="${package}" level="OFF"/>
  • OFF表示关闭全部日志。
  • package为第三方包名
<logger name="com.jin.third" level="OFF"/>

3、自定义修改本地项目日志级别

自定义测试类

@SpringBootTest
public class LogBackTest {
    private static final Logger logger = LoggerFactory.getLogger(LogBackTest.class);

    @Test
    void logLevel() {
        logger.trace(" --- trace --- ");
        logger.debug(" --- debug --- ");
        logger.info(" --- info --- ");
        logger.warn(" --- warn --- ");
        logger.error(" --- error --- ");
    }
}

配置如下:

    <logger name="com.jin.log.LogBackTest" level='info'>
        <appender-ref ref="CONSOLE"/>
    </logger>

测试打印

2023-04-05 22:43:49.619  INFO 14092 --- [           main] com.jin.log.LogBackTest                  :  --- info --- 
2023-04-05 22:43:49.619  INFO 14092 --- [           main] com.jin.log.LogBackTest                  :  --- info --- 
2023-04-05 22:43:49.619  WARN 14092 --- [           main] com.jin.log.LogBackTest                  :  --- warn --- 
2023-04-05 22:43:49.619  WARN 14092 --- [           main] com.jin.log.LogBackTest                  :  --- warn --- 
2023-04-05 22:43:49.619 ERROR 14092 --- [           main] com.jin.log.LogBackTest                  :  --- error --- 
2023-04-05 22:43:49.619 ERROR 14092 --- [           main] com.jin.log.LogBackTest                  :  --- error --- 

由上得知,重复打印

需要添加属性additivity="false"

    <logger name="com.jin.log.LogBackTest" level='info' additivity="false">
        <appender-ref ref="CONSOLE"/>
    </logger>

打印结果:

2023-04-05 22:43:49.619  INFO 14092 --- [           main] com.jin.log.LogBackTest                  :  --- info --- 
2023-04-05 22:43:49.619  INFO 14092 --- [           main] com.jin.log.LogBackTest                  :  --- info --- 
2023-04-05 22:43:49.619  WARN 14092 --- [           main] com.jin.log.LogBackTest                  :  --- warn --- 

4、自定义日志级别

logger.setLevel(Level.forName("CUSTOM_LEVEL"))
贡献者: Jin