ActiveMQ与Logback日志组件SLF4J冲突导致日志不输出

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Users/LIUBR/.m2/repository/org/apache/activemq/activemq-all/5.15.4/activemq-all-5.15.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/LIUBR/.m2/repository/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]

activemq-all中会包含slf4j-log4j12,与自己引的slf4j冲突

解决方法一:exclusion slf4j-log4j12 (无效)

    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-all</artifactId>
      <version>5.15.4</version>
      <exclusions>
        <exclusion>
          <artifactId>spring-context</artifactId>
          <groupId>org.springframework</groupId>
        </exclusion>
        <exclusion>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
        <exclusion>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
        </exclusion>
      </exclusions>
    </dependency>

解决方法二:分别添加activemq的组件

    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-core</artifactId>
      <version>5.7.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-pool</artifactId>
      <version>5.15.4</version>
    </dependency>

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
解决SLF4J冲突的一种更合理的方法是通过排除不需要的SLF4J依赖项来明确指定使用的绑定。 在你的项目的依赖配置文件(例如`pom.xml`)中,你可以使用`<exclusions>`元素来排除特定的SLF4J依赖项。以排除`activemq-all`中的SLF4J绑定为例,你可以尝试以下配置: ```xml <dependency> <groupId>org.apache.activemq</groupId> <artifactId>activemq-all</artifactId> <version>5.9.1</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> </exclusion> </exclusions> </dependency> ``` 上述配置将排除`activemq-all`依赖项中的`slf4j-log4j12`和`logback-classic`。这样,只有其他依赖项中的SLF4J绑定会被使用。 请确保在排除依赖项时谨慎操作,以免影响其他模块或功能。如果其他模块需要使用`activemq-all`中的SLF4J绑定,请考虑其他解决方案,如升级或调整依赖版本。 此外,你还可以检查项目的其他依赖项,并确保只有一个SLF4J绑定存在。如果有多个绑定存在,你可以选择保留其中一个,并将其余的排除掉。 总之,通过明确指定使用的SLF4J绑定,并排除不需要的依赖项,可以更合理地解决SLF4J冲突问题。如果问题仍然存在,请提供更多关于你的项目、依赖库以及使用的构建工具和运行环境的信息,以便更准确地帮助你解决问题。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值