Spring Boot的日志设计
大约 2 分钟
Spring Boot的日志设计
1、SpringBoot 采用日志组合
SLF4J+Logback
SLF4J是门面,Logback是实现
2、SpringBoot 日志设计
由于Spring Boot要整合大量其他框架,这些框架底层可能采用了各种不同的日志实现, 因此Spring Boot需要将这些日志全部“路由”给SLF4J(把所有日志统一交给SLF4J来输出), 以后开发者就只需要设置SLF4J的日志即可。
因此还需要
log4j-to-slf4j
:它负责将Log4j日志路由到SLF4J。jul-to-slf4j
:负责将JUL日志路由到SLF4J。
查看依赖
mvn dependency:tree -Dincludes=org.springframework.boot:
执行后的依赖树:
[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:3.3.0:compile
[INFO] | +- org.springframework.boot:spring-boot-starter:jar:3.3.0:compile
[INFO] | | \- org.springframework.boot:spring-boot-starter-logging:jar:3.3.0:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-json:jar:3.3.0:compile
[INFO] | \- org.springframework.boot:spring-boot-starter-tomcat:jar:3.3.0:compile

说明:
- 当你项目用了Spring Boot之后,Spring boot会负责将所有第三方框架日志都路由给SLF4J, 开发者就只需要配置SLF4J日志,即可对所有的日志进行全盘控制。
- 将Spring Boot应用部署到服务器上,JUL生成的日志将不再路由到Spring Boot应用的日志。 ——由于应用服务器底层往往都使用JUL日志,由于应用服务器本身、及服务器上可能部署了其他应用的日志 这些日志当然与我们Spring Boot应用无关,所以Spring Boot默认不会将这些日志路由到SLF4J上。
Spring Boot
统一了Java领域的所有框架所可能用到的日志实现,并将这些日志全部“路由”给SLF4J
来管理,因此开发者只要管理SLF4J日志,即可对项目中所有日志框架进行管理。