2

我正在 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 位于应用服务器的类路径中。

4

2 回答 2

1

问题是您必须使用相同的 slf4j-api JAR 和实现 JAR (slf4j-log4j)。

确保 CLASSPATH 上的两个 jar 是相同的版本。也总是只放其中两个:

  • API JAR
  • 一个实现 JAR(例如 log4j 适配器、juli 记录器、简单记录器...)

编辑:再次查看您的错误消息:您可能需要升级 log4j 库或降级 slf4j 库。它们的版本不兼容。

于 2011-01-17T09:53:21.647 回答
0

“SLF4J 版本 1.4.0 及更高版本需要 log4j 1.2.12 或更高版本”只是一个警告。SLF4J 1.6.1 应该与 log4j 1.2.8 一起工作得很好。换句话说,您无需更改任何内容。特别是,强制转换为 Log4jLoggerAdapter 是不必要的,除了让你的代码更丑之外,它不会有任何帮助。

于 2011-01-18T14:53:59.380 回答