快乐随行

导航

Spring Boot2 开启系统日志(1)- 了解日志

Spring Boot 使用 Logback 作为默认的日志框架,可以配置日志记录方式、级别和输出格式。本文探讨 Logback 的配置以及如何在实际项目中应用它。

1. 日志显示格式

在 SpringBoot 应用中,日志会默认输出到控制台,日志格式如下:

2023-12-04 13:37:22.518  INFO  65136     --- [           main] com.x.Application      : Started Application in 2.192 seconds (JVM running for 3.957)
| ---- 1 -------------- | -2- | - 3 - | - 4 - | ---- 5 ----- | ---------- 6 ---------- | --------------------- 7 ---------------------------------- |

日志的输出内容中一共有7种元素,具体如下:

  1. 时间日期:精确到毫秒
  2. 日志级别:ERROR, WARN, INFO, DEBUG 和 TRACE。
  3. 进程ID:Java(SpringBoot)应用进程ID。
  4. 分隔符:--- 标识实际日志的开始。仅作为日志头(1、2、3)和日志体(5、6、7)之间的分隔线,无实际意义。
  5. 线程名:方括号([])内部的字符串即为线程名称
  6. Logger名:通常使用类名代替
  7. 日志内容

2. 日志级别:

SpringBoot 日志的级别用于控制输出日志的详细程度。每种不同的日志等级对应一组不同的日志信息,级别越高,输出的日志信息就越详细。各种日志级别的含义如下:

  • trace:跟踪,用于记录每个方法的调用情况、每个参数和返回值的取值等详细信息。因为记录信息太多一般不启用。级别最低;
  • debug:调试,用于记录应用程序在调试模式下的一些状态信息,例如请求处理时间、请求参数等。;
  • info:信息,用于记录应用程序正常运行时的一些状态信息,例如系统启动完成、请求处理完成等(默认⽇志级别);
  • warn:警告,用于记录不影响使用,但需要注意的问题;
  • error:错误信息,用于记录已经发生的错误情况,例如文件无法打开、数据无法读取等;
  • fatal:致命错误,用于记录因为代码异常导致程序退出执⾏的事件。

SpringBoot 中日志级别从低到高依次为:trace < debug < info < warn < error < fatal
SpringBoot 默认的输出日志级别为:INFO。所以 SpringBoot 默认输出 INFO 及以上级别的 WARN,ERROR,FATAL 的日志。
注意:Logback 不支持 FATAL,会映射给 ERROR。

3. 开启 DEBUG 日志

我们可以通过两种方式切换至DEBUG级别:

  • 在运行命令后加入--debug标志,如:$ java -jar myapp.jar --debug
  • 在配置文件application.properties中配置debug=true

4. Logback 加载日志配置顺序

Logback 的配置文件通常命名为 logback.xml,它控制了日志记录方式、级别和输出目标。在 Spring Boot 项目中,可以将 logback.xml 文件放置在 src/main/resources 目录下。
日志的配置除了可以在xml中单独配置,还可以在 application.properties或 application.yml 里面配置,配置文件的加载顺序是:
logback首先会试着查找logback.xml文件,如果是Springboot项目,则找application配置文件,然后再查找logback-spring.xml;
如果仍然没有找到,则使用默认配置(打印到控制台)。

logback.xml -> application.yml -> logback-spring.xml

application配置方式:比较简单,可做的事情也比较简单,比如:只能配置日志文件的输出路径、日志文件的格式、日志的级别等
logback自定义配置方式:比较复杂,对日志的处理比较好,生产上推荐这种,运行维护好。
logback-spring.xml:
当使用 logback-spring.xml 作为日志配置文件时,Logback 自动加载与激活的 Spring Profile 相对应的日志配置。
logback.xml:
如果使用标准的 logback.xml 作为日志配置文件,则不会获得 Spring Profile 相关的功能。

5. 依赖引入

SpringBoot 默认集成的日志框架是 Logback,如果项目的POM文件中已经引入了 spring-boot-starter 或 spring-boot-starter-web 则不需要再引入,Logback已经包含其中。如果想使用其他日志框架需要单独引入依赖。

posted on 2023-12-05 14:17  快乐随行  阅读(107)  评论(0编辑  收藏  举报