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

c12*_*c12 9 java log4j slf4j

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

例外:

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

FGr*_*reg 22

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.