web-applications - 潜在的日志记录/Log4j 破坏情况

标签 web-applications tomcat logging log4j

我有两个部署到 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/

相关文章:

java - 使用 Jersey 的 Java Web 服务

java - 转义 HTTP 请求中的斜杠

ruby-on-rails - 有效存储和处理客户端日志的数据库

java - 如何将带有gradle的源代码热部署到tomcat7中?

eclipse - 如何安装基于 golang 的所有内部文件夹的网络应用程序

java - 如何查找哪个应用程序保留了 Postgres 连接?

ios - iPhone一夜之间断开了USB连接,没有系统日志

python - 如何跨多个进程登录 WSGI 应用程序?

ios - 可以用 iPad 从网页上拍照吗?

php - 基于 JavaScript 或 PHP 的所见即所得矢量图像编辑器