谁能告诉我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.
两者都是有效的库,并且同样是"标准的",它取决于项目.
通常,如果您的项目已经使用了log4j,并且您无法将所有log4j记录器更新为slf4j Loggers; log4j-over-slf4j是一个快速修复,可以立即开始使用slf4j.
但是,如果您的项目是新的或者没有现有的日志记录机制并且您选择使用slf4j,则slf4j-log4j将是可行的方法,因为它只是指定slf4j应绑定到log4j.
话虽如此,我同意c12的评论.停止使用log4j,而是使用slf4j和logback.