Class path contains multiple SLF4J bindings

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J:Found binding in [jar:file:/E:/apache-maven-3.8.8-bin/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J:Found binding in [jar:file:/E:/apache-maven-3.8.8-bin/repository/org/slf4j/slf4j-log4j12/1.7.30/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]

 报错信息显示,slf4j-log4j12-1.7.30和logback-classic-1.2.3日志包存在冲突,我们需要排除掉1.7.30包来解决冲突。(1.7.30是其他包引入。而1.2.3是spring自带的log,不引入会报其他错误)

通过pom的依赖分析查看引入包的位置信息,直接在该引入配置加上

<exclusions>
    <exclusion>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
    </exclusion>
</exclusions>

例如我是在引入腾讯云的包引发的冲突

之后maven重新加载,报错消失。

这个报错信息不影响项目正常本地运行,但是打包发布会有问题,所以需要解决。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 这个错误提示是因为在项目的 classpath 中同时存在多个版本的 slf4j-bindings,导致冲突。解决方法是删除其中一个版本的 slf4j-bindings,或者使用 Maven 等构建工具来管理依赖,避免出现冲突。 ### 回答2: SLF4J(Simple Logging Facade for Java)是一个日志框架,它是 LoggerFactory 和其他日志 API 之间的接口层。它的主要目的是提供一个通用的 API,为具体的日志框架(如Logback和Log4j)提供绑定。 当你的应用程序中出现“class path contains slf4j bind”的错误时,这表明应用程序中存在多个 SLF4J 的实现,这些实现互相覆盖导致冲突。在使用 SLF4J 时,你只要选择一种框架作为你的实现,并通过 Maven 安装依赖即可,这样就不会出现上述错误。 为了解决“class path contains slf4j bind”的错误,可以采用以下方式。 1. 确认应用程序中只使用 SLF4J 的一个实现。例如,如果你使用了 Log4j2,则需要将其余的 SLF4J 实现和相关的依赖都去掉,只留下 Log4j2 的实现和其相应的依赖。 2. 检查应用程序的依赖库。如果你用了 Maven 来管理你的依赖,可以使用 Maven Dependency Plugin来查看你的依赖库中是否有重复的依赖或者多个 SLF4J 实现。 3. 将冲突的实现去掉。通过 Maven 或者 Gradle 来排除掉冲突的实现即可。 4. 如果你的应用程序中有多个模块,你需要在所有模块中进行排查,确保所有模块统一使用同一版本的 SLF4J。 总之,解决“class path contains slf4j bind”的错误主要有两个方面,一个是检查你应用程序中的依赖,另一个是检查你的代码。只有这两个方面都得到了解决,才能避免出现这一错误。 ### 回答3: slf4j是一种日志记录框架,其实现分为两部分:接口和绑定器。在Java应用程序中,slf4j接口充当门面,与应用程序代码相连,允许应用程序代码记录日志。为了在应用程序中正确使用slf4j,您需要为其提供一个绑定器。 当您在Java应用程序中看到“类路径包含slf4j bind”这样的消息时,意味着slf4j绑定器已经被配置并且在您的应用程序中发挥作用。这通常是一个好的消息,因为它表示您的日志配置在工作。 如果您在构建或运行代码时遇到“找不到slf4j bind”或类似消息的错误,则可能需要调整您的类路径或slf4j配置。如果您当前并不需要日志,您可以在应用程序中简单地将slf4j排除在外,以避免不必要的错误消息和其他相关问题。 在使用slf4j时,您需要选择适当的绑定器。slf4j在其网站上提供各种绑定器,可与各种日志记录框架(例如Logback,Log4j和JUL)一起使用。您可以选择使用与您的应用程序兼容的绑定器,并按照slf4j和绑定器的文档进行配置。 总之,“类路径包含slf4j bind”是一条消息,告诉您正在使用slf4j日志框架,并且已经配置了适当的绑定器以在应用程序中记录日志。如果您遇到任何问题,请查阅官方文档以获得更多帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值