Caused by: org.apache.logging.log4j.LoggingException: log4j-slf4j-impl cannot be present with log4j-to-slf4j
时间: 2023-10-13 16:59:56 浏览: 236
这个错误通常是由于项目中同时存在log4j-to-slf4j和log4j-slf4j-impl这两个依赖所导致的。log4j-to-slf4j是一个用于将log4j的日志转换为slf4j日志的桥接器,log4j-slf4j-impl是一个用于将slf4j的日志框架实现为log4j的日志的桥接器。由于这两个桥接器的功能有所重叠,同时存在会导致冲突。
解决方法是移除其中一个依赖,通常建议移除log4j-slf4j-impl依赖,因为log4j-to-slf4j是更为常用的桥接器。
相关问题
Caused by: java.lang.IllegalArgumentException: LoggerFactory is not a Logback LoggerContext but Logback is on the classpath. Either remove Logback or the competing implementation (class org.apache.logging.slf4j.Log4jLoggerFactory loaded from file:/D:/lt-work/install/tomcat/apache-tomcat-7.0.52/webapps/avp/WEB-INF/lib/log4j-slf4j-impl-2.13.3.jar). If you are using WebLogic you will need to add 'org.slf4j' to prefer-application-packages in WEB-INF/weblogic.xml: org.apache.logging.slf4j.Log4jLoggerFactory
这个错误提示是由于在项目中同时引入了 Logback 和 Log4j 的实现,导致 LoggerFactory 找不到正确的日志框架。解决方法有两种:
1.移除其中一个实现,比如移除 log4j-slf4j-impl-2.13.3.jar。
2.在项目中排除掉 log4j-slf4j-impl-2.13.3.jar,然后在 pom.xml 中引入 log4j-over-slf4j,将 log4j 的日志框架转为使用 slf4j 的实现,避免与 Logback 冲突。具体操作如下:
```
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>1.7.30</version>
<scope>runtime</scope>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</exclusion>
</exclusions>
</dependency>
```
caused by: java.lang.classnotfoundexception: org.apache.commons.logging.logfactory
这是一个Java异常,表示找不到org.apache.commons.logging.LogFactory类。这通常是由于缺少相关的依赖库或类路径配置错误引起的。要解决这个问题,您需要确保已正确安装和配置所需的依赖项,并检查类路径是否正确设置。
阅读全文