一、SpringBoot如何引入slf4j+logback框架的呢?
在POM文件中
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>
依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<version>2.1.4.RELEASE</version>
<scope>compile</scope>
</dependency>
更细致的依赖图
可以看到除了引入具体实现logback和门面slf4j的包,还加很多转换中间包,为什么呢?
二、这么多日志框架,如何统一使用slf4j+logback呢?
我们知道第三方框架都默认引用了不同的日志框架,如:Spring(commons-logging)、Hibernate(jboss-logging)、MyBatis、xxxx
所以我们用三部曲达到统一的目的:
1、将系统中其他日志框架先排除出去;
2、用中间包来替换原有的日志框架;
3、我们导入slf4j其他的实现。
当然这是springboot文档有教的,下面看下官方的几张关系梳理图,就很清晰了,多看官方文档有益。
A.各日志框架的使用
B。排除、替换(结合三部曲)
三、如何替换springboot默认日志框架?(默认挺好的,只是更好理解原理)
其实结合上面的关系图就可以进行三部曲操作。
A.切换为slf4j+log4j:
1.排除logback2.排除log4j-over-slf4j中间替换包 <dependency> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <artifactId>logback-classic</artifactId> <groupId>ch.qos.logback</groupId> </exclusion> <exclusion> <artifactId>log4j-over-slf4j</artifactId> <groupId>org.slf4j</groupId> </exclusion> </exclusions> </dependency> 3.加入中间适应包 <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </dependency>
B.切换为log4j2
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <artifactId>spring-boot-starter-logging</artifactId> <groupId>org.springframework.boot</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency>
原文地址:https://www.cnblogs.com/Oven1993/p/10771900.html