springboot 报错“LoggerFactory is not a Logback LoggerContext but Logback is on the classpath.” 解决方式

本文针对SpringBoot项目启动server子模块时出现的IllegalArgumentException: LoggerFactory不是LogbackLoggerContext错误进行解析,并提供了解决方案,包括如何定位并移除logback和slf4j-log4j12。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

springboot 项目启动server子模块时,报了

"Exception in thread "main" java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.slf4j.impl.Log4jLoggerFactory loaded from file:/Users/it00013196/.m2/repository/org/slf4j/slf4j-log4j12/1.7.26/slf4j-log4j12-1.7.26.jar). If you are using WebLogic you will need to add 'org.slf4j' to prefer-application-packages in WEB-INF/weblogic.xml: org.slf4j.impl.Log4jLoggerFactory" 的错误。

根据提示是要移除logback或slf4j-log4j12其中一个,但是pom中并没有引入这两个包的语句。

移除logback

本文先从移除logback入手。

(1)找到引入logback的包

在idea, view -> Tools Windows -> maven

在maven窗口中,选中server子模块,点击maven窗口上方的show dependencies

按 command + f ,找到logback-core,单击

显示依赖图,在依赖图中找到引用logback的是mybatis(不一定都是mybatis,也可能是其他依赖引用的,在依赖图找到它)

打开pom.xml,在引入mybatis的部分加入排除logback的语句,再启动,问题解决。

 

移除slf4j-log4j12

方式与移除logback一样,到依赖图中找引入slf4j-log4j12的点,然后将slf4j-log4j12移除掉,我是zkclient这一依赖中引入了slf4j-log4j12。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值