Spring Boot 中统一使用logback日志的实现,并排除其他框架中的日志实现统一使用logback
注:本文章主要讲的是Spring Boot中统一日志的方法,并没有讲述怎么取配置日志
今天发现了一个Spring Boot的一个叫做spring-boot-starter-logging的启动器
然后再官网的参看文档看了一下,说是使用logback记录日志,而且是Spring Boot默认的日志启动器.
可以看到再这个启动器的POM文件中首先引用了logback的依赖,然后又引入了jcl-over-slf4j、jul-to-slf4j、log4j-over-slf4j这三个依赖,而slf4j是logback的抽象层,他在这里使用了这三个依赖分别将jul(Java Util Logging)jcl(common logging)log4j转换成了slf4j,就是通往slf4j的桥梁。
那么我们再来看一下他转换的原理
看一下jcl转换slf4j的依赖下,可以看到这个Jar包里边的包名跟jcl依赖的包名一样这样我们点开LogFactory里边看一下他是怎么通过这个一样的包名替换的。
可以看到他在声明LogFactory的时候直接new了一个SLF4JLogFactory,这样就实现了日志的狸猫换太子,其他的转换包也都是同样的原理,在这里久不一一叙述了。
这样我们在导入其他依赖的时候,只需要排除掉其POM文件中的日志实现依赖就可以了。
比如
像这样排除掉日志的实现依赖就可以了。
第一次写文章,有什么不对的地方还请在评论里支持,在这里先感谢各位了。