Web applications 潜在的测井/测井4J堵塞情况

Web applications 潜在的测井/测井4J堵塞情况,web-applications,tomcat,logging,log4j,Web Applications,Tomcat,Logging,Log4j,我在Tomcat上部署了两个Web应用程序。该服务是通过catalina.sh中的-Dlog4j.configuration=log4j.properties启动的 有时我会注意到只有一个webapp正在登录到该文件。我重新启动Tomcat,两个都再次登录。有没有关于冲突可能是什么的想法?这不应该是一种受支持的配置吗?因为这两个应用程序都在同一个JVM中运行,并具有全局配置 我能想到的唯一可能会干扰的是CXF日志配置:META-INF/CXF/org.apache.CXF.Logger 更新 我

我在Tomcat上部署了两个Web应用程序。该服务是通过catalina.sh中的-Dlog4j.configuration=log4j.properties启动的

有时我会注意到只有一个webapp正在登录到该文件。我重新启动Tomcat,两个都再次登录。有没有关于冲突可能是什么的想法?这不应该是一种受支持的配置吗?因为这两个应用程序都在同一个JVM中运行,并具有全局配置

我能想到的唯一可能会干扰的是CXF日志配置:META-INF/CXF/org.apache.CXF.Logger

更新

我发现两个webapp仍在日志中,但有一个webapp正在文件中的不同位置进行日志记录,因此我将看到类似的内容

1:59PM - xx 2:00PM - xxxx 1:45PM - xxx 下午1:59-xx 下午2:00-xxxx 下午1:45-xxx 等等


有时它会记录到一个滚动文件。

我不知道为什么会发生这种情况,但您可以插入一些被触发的调试代码,以查看记录失败时发生的情况。类似这样的内容(代码未经测试!):

使用
System.out.println
调试log4j有点讽刺,但它可以完成这项工作(无论如何,这是一个一次性代码)

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())