log4j-slf4j-impl cannot be present with log4j-to-slf4j

log4j-slf4j-impl cannot be present with log4j-to-slf4j

这个错误的意思是 log4j-slf4j-impl 和 log4j-to-slf4j 这两个包不能同时存在。

那么为什么这两个包不能同时存在呢?我们先来看一下这两个包的定义:

  • log4j-slf4j-impl
    Apache Log4j SLF4J Binding: The Apache Log4j SLF4J API binding to Log4j 2 Core
  • log4j-to-slf4j
    Apache Log4j to SLF4J Adapter: The Apache Log4j binding between Log4j 2 API and SLF4J

从上述定义可以看出,log4j-slf4j-impl 主要是 log4j 对 slf4j 接口的实现,而 log4j-to-slf4j 则是 slf4j 对 log4j 接口的适配。

这两个接口不能同时存在的意思是说,要么用 log4j 日志系统,然后同时支持 slf4j 接口的调用;要么用其他日志系统,比如logback(logback是 slf4j 接口的实现),然后适配log4j接口。不能兼而有之!

spring boot 默认使用的logback日志系统,logback实现的是slf4j接口,因此需要适配 log4j接口,因而会引入 log4j-to-slf4j。

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-logging</artifactId>
  <version>2.3.5.RELEASE</version>
  <scope>compile</scope>
</dependency>

因此,如果您正在使用的是spring boot,则不能引入log4j-slf4j-impl。

问题解决:只需要看一下是哪个 pom 文件引入了 log4j-slf4j-impl,把这个包去掉就可以啦!

了解更多?
SLF4J、JCL、JUL、log4j、logback的关系

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值