Websphere所有日志都将转到SystemOut.log

时间:2011-11-15 04:32:54

标签: java log4j websphere

我在我的应用程序中使用Log4j并且有一些调试和错误的appender。我在tomcat上测试了这个并且工作正常。生成各自文件中的所有日志。但是当我在WAS6.1上部署代码时,所有日志都只在SystemOut.log中生成。

请帮忙!

1 个答案:

答案 0 :(得分:8)

问题可能是WebSphere 6.1在内部使用Jakarta Commons Logging(JCL),如果您的任何代码或第三方库也使用JCL,那么WebSphere的配置会与尝试使用log4j的应用程序冲突。如果发生这种情况,你会看到你所看到的确切内容。

有多个referencesblog posts描述了解决此问题的方法。我们发现最简单的方法是在Web应用程序的org.apache.commons.logging.LogFactory目录中(在WAR归档的根目录中)创建名为META-INF/services的文件。该文件必须包含以下行:

org.apache.commons.logging.impl.Log4jFactory

(至少对于较新版本的WebSphere ...)另一个关键是必须从与log4j jar相同的位置加载JCL jar。例如既可以来自WEB-INF / lib,也可以来自共享库。因此,您不能依赖于从WebSphere自己提供的副本加载JCL。如果它们被different classloaders加载,则无法正确看到对方。