学而实习之 不亦乐乎

SpringBoot 中的 Logging 日志

2024-01-21 21:33:21

一、日志格式

下面是 SpringBoot 项目中输出的日志:

2021-03-09 21:33:06.594  INFO 21236 --- [main] com.test.springboot.logging.LoggingMain   : Starting LoggingMain using Java 1.8.0_111 on JT-DS998-pzj with PID 21236 (...)
2021-03-09 21:33:06.597  INFO 21236 --- [main] com.test.springboot.logging.LoggingMain   : The following profiles are active: dev
2021-03-09 21:33:08.012  INFO 21236 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)

SpringBoot中默认的日志输出格式,一般包括以下几个部分:

  • 日期和时间:精确到毫秒,易于排序
  • 日志级别:ERROR, WARN, INFO, DEBUG, TRACE
  • 进程ID
  • [main]表示线程名称
  • Logger 名称:一般是类的路径
  • 日志的内容

二、日志的输出

默认情况下,SpringBoot会把日志输出到控制台,一般生产环境会将日志输出到文件,便于存储。如果想把日志写入文件,可以在 application.yml 配置文件中新增 logging.file.name 或者 logging.file.path 配置节进行配置,如下:

logging:
  # 日志文件
  file:
    name: /data/logs/debug.log
  level:
    # 日志级别
    root: info
    org.springframework.web: debug
    org.hibernate: error
  path: concretepage/logs  
  # 自定义日志格式
  pattern:
    console: '%d{yyyy-MMM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{15} - %msg%n'

三、日志分组

有时候我们需要对多个功能同时进行日志级别配置,这个时候可以利用日志的分组功能。例如,我们需要设置tomcat相关的日志级别,我们可以先将对应的模块分组。

logging:
  group:
    tomcat: "org.apache.catalina,org.apache.coyote,org.apache.tomcat"

然后对分组进行日志级别的设置

logging:
  level:
    tomcat: "trace"