SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/D:/maven_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:/D:/maven_repository/org/apache/logging/log4j/log4j-slf4j-impl/2.14.0/log4j-slf4j-impl-2.14.0.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
时间: 2023-07-19 19:58:05 浏览: 191
这是一个关于 SLF4J 的警告信息,意思是当前类路径中包含多个 SLF4J 绑定,具体原因可以参考警告信息中提供的链接进行了解。实际使用的绑定类型是 ch.qos.logback.classic.util.ContextSelectorStaticBinder。建议对项目的依赖进行排查,保证只存在一个 SLF4J 绑定。
相关问题
SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/D:/Maven/maven-repository/org/slf4j/slf4j-simple/1.7.12/slf4j-simple-1.7.12.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/D:/Maven/maven-repository/org/slf4j/slf4j-log4j12/1.7.30/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/D:/Maven/maven-repository/org/slf4j/slf4j-jdk14/1.5.6/slf4j-jdk14-1.5.6.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/D:/Maven/maven-repository/org/slf4j/com.springsource.slf4j.log4j/1.6.1/com.springsource.slf4j.log4j-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]
这是 SLF4J(Simple Logging Facade for Java)的日志输出警告信息,它表明在你的项目中存在多个 SLF4J 的日志实现绑定。这种情况下,SLF4J 将选择其中一个作为实际的绑定。
警告信息中列出了多个绑定(bindings),并指出了这些绑定所在的 jar 包路径。例如:
- slf4j-simple-1.7.12.jar
- slf4j-log4j12-1.7.30.jar
- slf4j-jdk14-1.5.6.jar
- com.springsource.slf4j.log4j-1.6.1.jar
警告还提供了一个链接(http://www.slf4j.org/codes.html#multiple_bindings),解释了为什么会发生多个绑定的情况。
根据警告信息中的 "Actual binding is of type [org.slf4j.impl.SimpleLoggerFactory]",SLF4J 实际上选择了 `org.slf4j.impl.SimpleLoggerFactory` 作为日志实现的绑定。
如果你想解决这个警告,可以考虑以下几个步骤:
1. 检查你的项目依赖关系,确保只有需要的 SLF4J 相关的库被包含在项目中。检查你的 Maven 或 Gradle 配置文件,并删除不必要的依赖项。
2. 如果你确实需要多个 SLF4J 的日志实现,可以选择保留一个并删除其他的实现。例如,如果你想要使用 log4j2 作为日志实现,可以排除其他绑定,只保留 slf4j-log4j12 的依赖。
3. 如果你的项目中使用了其他日志框架(如 logback 或 log4j),请确保只有一个日志框架的绑定被包含在项目中。
4. 如果你的项目中没有明确指定 SLF4J 的日志实现,可以尝试在项目的依赖中添加一个合适的日志实现库,例如 logback 或 log4j。
请根据你的具体情况和项目需求进行相应调整,以解决 SLF4J 的多重绑定问题。
SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/D:/java/maven_repository/org/slf4j/slf4j-simple/1.7.33/slf4j-simple-1.7.33.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/D:/java/maven_repository/ch/qos/logback/logback-classic/1.2.10/logback-classic-1.2.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
这个错误提示表明在你的项目中存在多个SLF4J的实现,导致SLF4J绑定失败。通常情况下,我们应该只保留一个SLF4J的实现,避免出现类似的问题。
解决这个问题的方法如下:
1. 排除冲突的依赖:在POM文件中排除冲突的依赖,只保留需要的SLF4J实现。例如:
```
<dependency>
<groupId>org.example</groupId>
<artifactId>example</artifactId>
<version>1.0</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
</exclusions>
</dependency>
```
2. 强制使用SLF4J的实现:在POM文件中使用dependencyManagement来强制使用指定的SLF4J实现,避免出现多个实现的情况。
```
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.33</version>
<scope>runtime</scope>
</dependency>
</dependencies>
</dependencyManagement>
```
3. 删除多余的SLF4J实现:在项目中删除多余的SLF4J实现,只保留需要的实现。
阅读全文