我在 $CATALINA_HOME/lib 下有 log4j2 jar :
- log4j-api-2.10.0.jar
- log4j-core-2.10.0.jar
- log4j-jul-2.10.0.jar
export JAVA_OPTS="${JAVA_OPTS} -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager"
在 catalina.properties 中,我有通用类加载器,我尝试再次添加 log4j-jul-2.10.0.jar,即使它已经在 CATALINA_HOME/lib 下,但没有成功。
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 仍然缺失,或者我应该使用其他一些 jar 来代替。在另一条消息中,他们说的是 juli.jar 和 extras,但在他们的情况下,他们使用的是较旧的 Tomcat 版本,6 或 7。
最佳答案
您只需要将log4j2-api、log4j2-core 和log4j2-appserver 库添加到Tomcat 类路径中,提供log4j2配置文件并从安装中删除 $CATALINA_BASE/conf/logging.properties。
这最容易通过以下方式完成:
在 catalina 主目录中创建一组名为 log4j2/lib 的目录和 log4j2/conf.
放置
log4j2-api-2.x.x.jar
、log4j2-core-2.x.x.jar
和log4j2-appserver-2.x.x.jar
在 log4j2/lib 目录中。创建名为 log4j2-tomcat.xml、log4j2-tomcat.json 的文件, log4j2-tomcat.yaml、log4j2-tomcat.yml 或 log4j2-tomcat.properties 在 log4j2/conf 目录中。
创建或修改tomcat bin目录下的setenv.sh以包含
CLASSPATH=$CATALINA_HOME/log4j2/lib/*:$CATALINA_HOME/log4j2/conf
您可以强制使用 JUL 框架的应用程序使用 log4j2 格式更改环境变量 LOGGING_MANAGER。您可以通过在 setenv.sh 文件中添加:LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager"
请记住 org.apache.logging.log4j.jul.LogManager
包含在必须添加到类路径的 log4j-jul-2.x.x.jar
桥中.
引用:
https://logging.apache.org/log4j/2.x/log4j-appserver/index.html
关于java - 如何使用 Tomcat 8.5.15 配置 log4j2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49299649/