我有两个部署到Tomcat的webapp。该服务以catalina.sh中的-Dlog4j.configuration = log4j.properties启动
有时我注意到只有一个webapps正在登录该文件。我重新启动Tomcat,两者都再次登录。关于冲突可能是什么的任何想法?这不应该是受支持的配置,因为这两个应用程序都在同一个JVM中运行,具有全局配置吗?
我能想到的唯一可能是干扰的是CXF日志配置:META-INF / cxf / org.apache.cxf.Logger
更新
我发现两个webapps仍在记录,但是一个webapp正在记录到文件中的不同位置,所以我会看到类似
的内容1:59PM - xx 2:00PM - xxxx 1:45PM - xxx
等
有时会记录到已滚动的文件。
答案 0 :(得分:1)
我不知道为什么会发生这种情况,但您可以插入一些调试代码,以便在日志记录失败时查看正在发生的情况。这样的事情(代码未经测试!):
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有点讽刺,但是它可以完成这项工作(无论如何都是丢弃代码)。