1. 常用的日志框架
(1)日志框架分为日志抽象层和日志实现层。
(2)SpringBoot底层是Spring框架,而Spring默认是使用JCL(Jakarta commons logging)
(3)SpringBoot选用self4j和logback。
2. SpringBoot中的日志框架
上面已经提到SpringBoot是采用self4j和logback的日志框架来记录日志,那么如何使用呢?
2.1 如何使用Self4j?
注意:
(1)在开发的时候,日志记录的调用方法应调用日志抽象层中的方法。
(2)每一个日志框架都有自己的配置文件,当使用self4j之后,配置文件还是使用所日志实现框架的配置文件。Self4j只是个抽象层,具体的实现要看实现层,所以导入实现层的jar包是必不可少的。
2.2 如何统一日志框架?
假如有一个项目使用的是(Self4j+logback)日志框架,这个项目包含如下框架:spring(commons-logging)、 Hibernate(jboss-logging),一个项目有这么多的日志框架,如何统一规范使用呢?
首先,看一下self4j官网给出的统一日志框架流程图。
步骤:
- 将项目中其它框架的日志给去除
- 去除日志会带来一个问题:原有的框架会运行不了。因此用中间包来替换原有日志框架
- 最后倒入self4j的实现
下面以springboot框架为例,来看看springboot默认包含的日志框架,在pom.xml导入starter的jar包:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
然后,根据依赖关系可以看出spring-boot-starter
包含一个日志的jar包spring-boot-starter-logging
,它里面整合了包含了中间包log4j-to-slf4j
、jul-to-self4j
和logback-classic
分别对应着self4j-api和logback-core。
self4j-api
:把其它日志转为self4j相关依赖logback-core
:使用logback记录日志
2.3 总结
(1)springboot底层是使用self4j+logback形式记录日志。
(2)springboot把其它框架中包含的日志都替换成了slf4j的形式。
(3)springboot能自动适配所有日志,底层是self4j+logback形式,无需添加其它。
对于日志的具体使用方法参考:
SpringBoot中使用日志