我有两个部署到 Tomcat 的网络应用程序。服务在catalina.sh中以-Dlog4j.configuration=log4j.properties启动
有时我注意到只有一个 webapps 正在记录到该文件。我重新启动 Tomcat,两者都再次登录。关于冲突可能是什么的任何想法?这不应该是受支持的配置吗,因为这两个应用程序都在同一个 JVM 中运行,具有全局配置?
我唯一能想到的可能会干扰的是 CXF 日志配置:META-INF/cxf/org.apache.cxf.Logger
更新
我发现两个 webapps 仍在记录,但一个 webapps 正在记录到文件中的不同位置,所以我会看到类似的东西
1:59PM - xx 2:00PM - xxxx 1:45PM - xxx
等等
有时它会记录到滚动文件。
最佳答案
我不知道为什么会发生这种情况,但您可以插入一些被触发的调试代码,以查看日志记录失败时发生了什么。像这样(代码未经测试!):
Category logger = Logger.getLogger(yourClass);
do {
Level level = logger.getLevel();
System.out.println("Log level of " + logger + " is " + level + ". Appenders:");
for (Enumeration appenders = logger.getAllAppenders() ; appenders.hasMoreElements() ;) {
System.out.println(appenders.nextElement());
}
logger = logger.getParent();
} while (logger != Logger.getRootLogger())
用 System.out.println
调试 log4j 有点讽刺,但它可以完成工作(无论如何它都是一次性代码)。
关于web-applications - 潜在的日志记录/Log4j 破坏情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4973972/