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

Dev*_*v G 7 java websphere log4j

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

请帮忙!

dbr*_*aux 8

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

有多篇参考文献博客文章描述了解决此问题的方法.我们发现最简单的方法是创建一个org.apache.commons.logging.LogFactoryMETA-INF/servicesWeb应用程序目录中命名的文件(在WAR归档的根目录中).此文件必须包含以下行:

org.apache.commons.logging.impl.Log4jFactory
Run Code Online (Sandbox Code Playgroud)

(至少对于较新版本的WebSphere ...)另一个关键是必须从与log4j jar相同的位置加载JCL jar.例如,来自WEB-INF/lib或来自共享库的两者.因此,您不能依赖于从WebSphere自己提供的副本加载JCL.如果他们被不同的类加载器加载,他们就无法正确地看到对方.