繁体   English   中英

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

[英]java.lang.IllegalStateException: Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class pat

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

例外:

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

slf4j-log4j使用log4j作为slf4j的实现。

log4j-over-slf4j导致对log4j API的调用被“路由”到slf4j。

您不能同时使用这两个JAR。

两者都是有效的库,并且同样是“标准的”,它取决于项目。

通常,如果您的项目已经使用了log4j,并且您无法将所有log4j记录器更新为slf4j Loggers; 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

异常消息误导了我

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM