SpringBoot项目报错:LoggerFactory is not a Logback LoggerContext but Logback is on the classpath

错误展示: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>-->

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值