Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.IllegalStateException:在类pat上检测到log4j-over-slf4j.jar和slf4j-log4j12.jar_Java_Log4j_Slf4j - Fatal编程技术网

java.lang.IllegalStateException:在类pat上检测到log4j-over-slf4j.jar和slf4j-log4j12.jar

java.lang.IllegalStateException:在类pat上检测到log4j-over-slf4j.jar和slf4j-log4j12.jar,java,log4j,slf4j,Java,Log4j,Slf4j,谁能告诉我slf4j-log4j和log4j-over-slf4j之间的区别?在Java web应用程序中使用哪一个更标准?我目前在类路径上有这两个选项,这会导致运行时异常,因为web服务器正试图防止发生StackOverFlowException 例外情况: java.lang.IllegalStateException: 在类路径上检测到log4j-over-slf4j.jar和slf4j-log4j12.jar 正在使用log4j作为slf4j的实现 导致对log4j API的调用“路由”

谁能告诉我slf4j-log4j和log4j-over-slf4j之间的区别?在Java web应用程序中使用哪一个更标准?我目前在类路径上有这两个选项,这会导致运行时异常,因为web服务器正试图防止发生
StackOverFlowException

例外情况:

java.lang.IllegalStateException:
在类路径上检测到log4j-over-slf4j.jar和slf4j-log4j12.jar

正在使用log4j作为slf4j的实现

导致对log4j API的调用“路由”到slf4j

这两个库都是可以使用的有效库,并且都是相同的“标准库”,这取决于项目

通常,如果您的项目已经在使用log4j,并且您没有能力将所有log4j记录器更新为slf4j记录器;log4j-over-slf4j是一个快速修复程序,可以立即开始使用slf4j

但是,如果您的项目是新的或没有现有的日志记录机制,并且您选择使用slf4j,那么slf4j-log4j将是一个不错的选择,因为它只是指定slf4j应该绑定到log4j


尽管如此,我同意c12的评论。停止使用log4j,改为使用slf4j和logback。

在我的项目中,
org.slf4j.impl.Log4jLoggerFactory
位于

activemq-all-5.7.0.jar
不在
slf4j-log4j12.jar中


异常消息误导了我

删除两者是个好主意。我建议您检查两者的内容,找出它们的不同之处。这取决于web框架和日志实现。这也取决于服务器,但这是一个不同的问题。可能的重复似乎使用slf4j和logback是非常普遍的完美有效和完整的答案虽然你的答案完美地拯救了我,谢谢!但在五月份将依赖性排除在外看起来有点像黑客。是否有任何通用定义可以指导maven在所有底层应用排除?@Sankalp你是在问吗