我正在将我的应用程序从log4j迁移到log4j2。为此,我用log4j2替换了log4j的jar文件,并更新了相应的API调用以使用新的jar。
我们还有cassandra noSQL db,其中slf4j-log4j12-1.7.6.jar作为依赖项,而后者又使用log4j API。我需要用一个与log4j2兼容的新jar替换slf4j-log4j12-1.7.6.jar。有人可以建议使用正确的罐子吗?
我在构建cassandra组件时遇到异常。
无法实例化SLF4J LoggerFactory 报告的例外情况: java.lang.NoClassDefFoundError:org / apache / log4j / Level
atg.slf4j.LoggerFactory.bind(LoggerFactory.java:150)atg.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:124)org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:412)org .slf4j.LoggerFactory.getLogger(LoggerFactory.java:357)
答案 0 :(得分:2)
NoClassDefFound错误表明SLF4J正在寻找Log4j 1.x.你需要用Log4j 2的log4j-slf4j-impl jar替换slf4j-log4j12 jar。
答案 1 :(得分:0)
现在通过添加log4j-to-slf4j-2.9.1.jar并删除slf4j-log4j12-1.7.6.jar来解决此问题。
以下链接有帮助。
https://logging.apache.org/log4j/2.0/log4j-slf4j-impl/index.html
http://slf4j.42922.n3.nabble.com/trouble-migrating-from-log4j-1-2-to-log4j-2-0-td4025759.html