如何使用 Tomcat 8.5.15 配置 log4j2

Sam*_*ami 5 java tomcat log4j catalina log4j2

我在 $CATALINA_HOME/lib 下有 log4j2 jars:

  • log4j-api-2.10.0.jar
  • log4j-core-2.10.0.jar
  • log4j-jul-2.10.0.jar

导出 JAVA_OPTS="${JAVA_OPTS} -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager"

在 catalina.properties 中,我有通用的类加载器,即使它已经在 CATALINA_HOME/lib 下,我也尝试再次添加 log4j-jul-2.10.0.jar,但没有成功。

common.loader="${catalina.base}/lib","${catalina.base} /lib/.jar","${catalina.home}/lib","${catalina.home}/lib/ .jar","/opt/tomcat/apache-tomcat-8.5.15/lib/log4j-jul-2.10.0.jar"

我已经删除了 Tomcat 下的 logging.properties 并在路径中添加了一个新的 log4j2.xml

错误信息:

无法加载日志管理器“org.apache.logging.log4j.jul.LogManager”java.lang.ClassNotFoundException:org.apache.logging.log4j.jul.LogManager

知道为什么 LogManager 仍然丢失还是应该使用其他一些 jars 来代替。在另一条消息中,他们说的是 juli.jar 和 extras,但在他们的情况下,他们有较旧的 Tomcat 版本,6 或 7。

ICF*_*ICF 2

我知道现在回答这个问题有点晚了,但我确信它可以帮助像我这样努力配置 tomcat 以便它使用 lo4j 的人。过去3天我一直在做类似的事情,我发现tomcat网站提供的extras文件夹不是我需要的。但是,您仍然可以使用 Maven 来获取它们。我能够配置 tomcat,以便它使用提到的 jar 文件( tomcat-extras-juli.jar 和 tomcat-extras-juli-adapters.jar )。只需记住包含 VM 参数 -Dlog4j.debug 即可让您的生活更轻松并更快地捕获错误。

Maven 仓库:https://mvnrepository.com/artifact/org.apache.tomcat.extras/tomcat-extras-juli-adapters

在包含 tomcat 存储库提供的提到的 jar 后,我遇到了同样的问题。经过快速分析,我发现接口 org.apache.juli.WebAppProperties 未包含在由文件 org.apache.catalina.loader.WebappClassLoaderBase 使用的 jar 文件 tomcat-extras-juli.jar 中。经过更多研究后,我意识到 tomcat jar 文件包含在 Maven Repo 中。我在同一版本的 tomcat (当前为 8.5 )下下载了提到的 jar 文件,将这些 jar 插入到我的 tomcat 安装中,一切都按预期工作。现在我的tomcat版本使用log4j而不是juli。