Hello! 欢迎来到小浪资源网!


引入Sentinel后出现multiple SLF4J bindings错误该如何解决?


引入Sentinel后出现multiple SLF4J bindings错误该如何解决?

引入sentinel导致的multiple slf4j bindings问题

在项目添加sentinel依赖后,可能会遇到multiple slf4j bindings报错。这是由于项目中可能存在多个slf4j实现导致。一般情况下, 添加如下依赖排除即可解决问题:

<dependency>     <groupid>com.alibaba.cloud</groupid>     <artifactid>spring-cloud-starter-alibaba-sentinel</artifactid>     <version>2.2.9.release</version>     <exclusions>         <exclusion>             <groupid>org.slf4j</groupid>             <artifactid>slf4j-log4j12</artifactid>         </exclusion>     </exclusions> </dependency>

然而,有时添加exclusion也不一定能解决问题。这可能是因为项目中存在其他依赖引用了slf4j-log4j12.jar,导致在运行时仍然加载了该jar包。可以尝试以下解决方法

  • 检查依赖树:使用maven依赖树检查命令mvn dependency:tree,查看是否存在其他依赖引入了slf4j-log4j12.jar。
  • 强制排除slf4j-log4j12:在pom.xml中添加如下依赖:
<dependency>     <groupId>org.slf4j</groupId>     <artifactId>slf4j-log4j12</artifactId>     <version>1.7.25</version>     <scope>provided</scope> </dependency>
  • 升级sentinel版本:升级sentinel版本到2.3.0以上,该版本已解决multiple slf4j bindings问题。

相关阅读