【问题标题】:Potential Logging/Log4j Clobbering Situation潜在的日志记录/Log4j 崩溃情况
【发布时间】:2011-06-25 19:54:25
【问题描述】:

我有两个 webapps 部署到 Tomcat。该服务以 catalina.sh 中的 -Dlog4j.configuration=log4j.properties 启动

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

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

更新

我发现两个 webapp 仍在记录,但一个 webapp 正在记录到文件中的不同位置,所以我会看到类似

下午 1 点 59 分 - xx 下午 2:00 - xxxx 下午 1 点 45 分 - xxx

等等

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

【问题讨论】:

    标签: web-applications tomcat logging log4j


    【解决方案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 有点讽刺,但它可以完成这项工作(无论如何它都是一次性代码)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 2013-11-08
      • 2020-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多