我正在尝试使用log4j2
配置tomcat 7内部日志记录。我已经按照Logging server classes in Tomcat 6 with log4j2提供的答案进行了操作。
我正在使用tomcat 7.0.54和log4j-core-2.1.jar
、log4j-api-2.1.jar
。我已经下载了额外的内容并执行了以下所有步骤,但当我启动tomcat时,我收到一个错误:
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
以下是我执行的步骤:
- 将
log4j2.xml
放入$CATALINA_BASE/lib
中 - 从“extras”下载
tomcat-juli.jar
和tomcat-juli-adapters.jar
- 将“额外”中的
log4j-api-2.1.jar
、log4j-core-2.1.jar
、log4j-jul-2.1.jar
和tomcat-juli-adapters.jar
放入$CATALINA_HOME/lib
中。 - 将“extras”中的
$CATALINA_HOME/bin/tomcat-juli.jar
替换为tomcat-juli.jar
。 - 删除
$CATALINA_BASE/conf/logging.properties
- 设置日志管理器使用来自
log4j2-jul
桥(log4j-jul-2.1.jar
)的管理器。修改catalina.sh
以确保类路径包括bin/tomcat-juli.jar
、lib/log4j-jul-2.1.jar
、lib/log4j-api-2.1.jar
和lib/log4j-core-2.1.jar
,并且用于启动tomcat的命令包括-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager '
我甚至尝试在catalina.sh
中添加这个(LOGGING_CONFIG="-Djava.util.logging.config.file=$CATALINA_HOME/lib/log4j2.xml"
),但没有成功。
请让我知道是否有人可以成功配置它。
5条答案
按热度按时间u7up0aaq1#
我采取了以下步骤,它为我工作。
诀窍是按照官方的tomcat 7 documentation来安装log4J 1.X,而不是使用log4j 2工件catalina.sh。
fhg3lkii2#
我的错误是,我需要在类路径中包含
$CATALINA_BASE/lib
才能选择log4j2.xml
。8fsztsew3#
编辑,我有一个更清晰的例子在这里使用Docker。
根据您的安装调整以下内容:
我的Tomcat 8.5.x位于/opt/tomcat/
1.将log4j 2 jar文件复制到/opt/tomcat/lib/
(For Windows使用副本)
2.创建/opt/tomcat/配置文件/log4j2.xml
3.创建或编辑/opt/tomcat/bin/setenv.sh或/opt/tomcat/bin/setenv.bat
如果没有在www.example.com中设置CLASSPATHsetenv.sh/bat,则初始Tomcat Boot 加载程序将无法访问类org.apache.logging.log4j.jul.LogManager和log4j 2类。在启动Tomcat之前设置CLASSPATH不会影响初始Tomcat引导加载程序,因为catalina.sh/bat在运行www.example.com之前,www.example.com unsets CLASSPATHsetenv.sh/bat
4.查看/opt/tomcat/log/ Catalina .out中的日志,并注意log42.xml中的LOGJ 2前缀
csga3l584#
添加下面提到的Jar对我很有效
Apache Tomcat/7.0.70版本的操作系统
:
1./tomcat/lib/log4j-1.2-api-2.13.3.jar(esapi工作流所必需的)
/tomcat/bin/setenv.sh
/tomcat/conf/log4j2.xml
xzv2uavs5#
对于Docker,您可以使用以下方法。
1添加Maven插件以将依赖关系复制到目标目录:
2将www.example.com添加setenv.sh到您的存储库中:
3最后创建一个Dockerfile
4然后构建并运行Docker容器。