SpringBoot3-日志(2)-日志格式
·
1.默认的日志格式
启动主程序就能在控制台看到:

默认格式如下:
2025-08-27T14:28:10.473+08:00 INFO 24996 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
从左向右依次是:
-
时间和日期
-
日志级别:
ERROR, WARN, INFO, DEBUG, TRACE -
进程 ID
- 打开cmd,输入jps可以列举出所有运行中的java进程,24996就是该java项目的进程ID。

- 打开cmd,输入jps可以列举出所有运行中的java进程,24996就是该java项目的进程ID。
-
—:消息分隔符(三个-)
- 该项目运行的是主程序(在main线程中运行),所以
[]中是 main。
- 该项目运行的是主程序(在main线程中运行),所以
-
线程名:使用
[]包含 -
Logger 名:通常是产生日志的 类名
- 是由哪个类产生的这个日志,如
o.apache.catalina.core.StandardService
- 是由哪个类产生的这个日志,如
-
消息:日志记录的内容
注意:logback 没有 FATAL 级别,对应的是 ERROR
2.日志格式更改
控制台上的日志
- 打开项目中的
application.propertise,在其中加入logging.partter.*等命令,其中
logging.pattern.console表示在控制台打印的日志格式logging.pattern.file表示在文件中打印的日志格式- 示例:其中
%-5level表示日志级别级别,其中-5表示左对齐5个字符。%logger表示类%msg表示日志消息,%n表示换行
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{15} ===> %msg%n

2. 在application.propertise加入以上内容后再运行,可以看到控制台输出的日志格式发生了变化:
日志格式的默认设置在包spring-boot:3.0.5中的这个json中,默认格式很长,如下:
%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd'T'HH:mm:ss.SSSXXX}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}

3. 可以根据默认格式中的参数,比如LOG_DATEFORMAT_PATTERN,在application.propertise中仅针对某些内容格式进行修改。
业务中写日志
- 新建一个
controller:
package com.atwyb.logging.com.atwyb.logging.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
Logger logger = LoggerFactory.getLogger(getClass());
@GetMapping("/h")
public String hello(){
logger.info("loginfo:hello");
return "hello";
}
}
- 启动后,浏览器访问
http://localhost:8080/h后,查看控制台日志,就能看到在业务中自己设置的日志了(按以上代码,每次访问/h都会产生一个这样的日志):
参考:尚硅谷SpringBoot3零基础教程,面试&加薪必会springboot(含响应式编程)_哔哩哔哩_bilibili
更多推荐


所有评论(0)