错误展示:IDEA控制台打印此错,并提示:slf4j:slf4j-simple:1.7.30(部分关键字);
原因分析:根据控制台日志打印,是有两个日志依赖造成冲突导致系统不知道该使用哪个;
项目中主动加入了logback日志依赖,没有主动加slf4j日志;
解决:
一,移除slf4j;
二,移除logback;
对应API:
一,移除slf4j:
问题,pom文件中就没有主动加入slf4j日志,但是为什么会造成此冲突?
原因:依赖传递;
分析:项目中有些依赖底层会封装此日志依赖,所以使用了封装了此依赖的依赖,虽然没有主动加slf4j依赖,也会报日志冲突的相关错误;
解决:查找见哪些依赖中底层封装了slf4j,然后再此依赖下加入排除依赖标签:如以下
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
但是,我们不确定哪些依赖下面封装了slf4j,怎么办?
1,使用maven命令查看依赖树:mvn dependency:tree,前提是maven配置了本地的环境变量。
2,IDEA中找见右侧maven标签,然后找见Plugins,选择:"maven-dependency-plugin" -> "dependency:tree";
3,一般是找不见2中的配置,如果找不见,则使用Maven Helpher插件,在IDEA的setting中找见Plugins下载安装,重启IDEA,重启后选中你要查看的pom文件,右键,选择:Dependency Analyzer,然后所有的依赖传递都会显示出来,再搜索框搜索你需要搜索的,如我这里slf4j,搜索见之后,点击,右侧就会出现对应的封装的相关依赖,再回到pom文件中找见对应的依赖,在依赖下加入上述依赖排除标签即可。
我这里通过上述查询,相关的依赖挺多,所以我采取了第二种移除logback的方法!
二,移除logback:
简单粗暴,直接注释(注意前提是pom中有依赖封装或者直接使用slf4j相关日志依赖):
<!-- <dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
</dependency>-->