我尝试使用 commons-logging 和 log4j 将我的应用程序日志写入文件,但我的日志继续写入 SystemOut.log。日志文件确实已创建,但它是空的。
这是我的 log4j.properties 和 commons-logging.properties(两者都应该位于类路径上 - 它们位于 WEB-INF/classes 下)
WEB-INF/classes/log4j.properties:
log4j.rootLogger=INFO, AppLogAppender
log4j.logger.org.apache.struts2.util.TextProviderHelper=ERROR, AppLogAppender
log4j.logger.com.wawanesa=DEBUG, AppLogAppender
# AppLogAppender
log4j.appender.AppLogAppender=org.apache.log4j.FileAppender
log4j.appender.AppLogAppender.File=/waslogs/applogs/us.log
log4j.appender.AppLogAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.AppLogAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
WEB-INF/classes/commons-logging.properties:
priority=1
org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl
我的应用程序类路径上有 log4j.jar 和 commons-logging.jar。我在 was6.0 中看到了类加载器问题,您必须将其设置为“应用程序优先”,但我没有看到任何 commons-logging 类类加载器 View 中的基本 Websphere 类路径。
最佳答案
问题在于WebSphere 本身使用commons-logging,所以发生的情况是您正在获取应用程序服务器的公共(public)日志记录属性文件。尝试将模块的类加载器顺序更改为“首先加载应用程序类”,这应该意味着当您的应用程序启动时,它会获取自己的日志配置而不是服务器。
关于java - WAS 6.1 中的 Commons 日志记录仅记录到系统日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3892292/