我正在Weblogic 8.1上部署一个企业应用程序,它在类路径上有log4j 1.2.8。我在SLF4J 1.6.1中遇到以下错误:
SLF4J版本1.4.0及更高版本 需要log4j 1.2.12或更高版本
http://www.slf4j.org/codes.html#log4j_version
以上链接建议使用Log4jLoggerAdapter。
我已经改变了
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
logger.info("Hello World");
到
Log4jLoggerAdapter logger = (Log4jLoggerAdapter) LoggerFactory.getLogger(HelloWorld.class);
logger.info("Hello World");
然而,我仍然遇到错误。 关于如何正确实现这个的任何建议?
感谢。
[编辑] slf4j-api-1.6.1.jar和slf4j-log4j12-1.6.1.jar在我的开发类路径中,并打包到我的EAR文件的APP-INF / lib中。 log4j 1.2.8在应用程序服务器的类路径上。
答案 0 :(得分:1)
问题是您必须使用相同的slf4j-api JAR和实现JAR(slf4j-log4j)。
确保CLASSPATH上的两个jar都是相同的版本。也总是只放两个:
编辑:再次查看错误消息:您可能需要升级log4j库或降级slf4j库。它们的版本不兼容。
答案 1 :(得分:0)
“SLF4J版本1.4.0及更高版本需要log4j 1.2.12或更高版本”只是一个警告。 SLF4J 1.6.1应该可以正常使用log4j 1.2.8。换句话说,您不必更改任何内容。特别是,不需要转换为Log4jLoggerAdapter,除了使你的代码更加丑陋之外,它无论如何都没有帮助。