java - WAS 6.1 中的 Commons 日志记录仅记录到系统日志

标签 java websphere

我尝试使用 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/

相关文章:

java - 无法调用函数的返回值

e-commerce - 在 WebSphere Commerce 的结账过程/流程中调用了哪些命令?

websphere - 将共享库附加到 WebSphere 应用程序的模块

java - JNDI - WAS 7 中的 JDBC 资源查找失败

web-applications - 相当于 glassfish-web.xml 的 Websphere

java.lang.UnsupportedClassVersionError 异常

java - 序列化Java AudioClip的解决方法

java - 当JSP中属性名称本身是变量时,如何获取对象属性的值?

java - 在java中的菜单之间跳转

jakarta-ee - WAS6.1中停止、立即停止和终止的区别