使用log4j2.xml进行tomcat 7内部日志记录
我试图用使用log4j2.xml进行tomcat 7内部日志记录,tomcat,logging,log4j2,tomcat-juli,Tomcat,Logging,Log4j2,Tomcat Juli,我试图用log4j2配置Tomcat7内部日志记录。我已经遵循了在中提供的答案 我正在使用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 t
log4j2
配置Tomcat7内部日志记录。我已经遵循了在中提供的答案
我正在使用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
- 将“
$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
,用于启动tomcat的命令包括 -Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager`lib/log4j-core-2.1.jar
LOGGING\u CONFIG=“-Djava.util.LOGGING.CONFIG.file=$CATALINA\u HOME/lib/log4j2.xml”
)添加到CATALINA.sh
中,但没有成功
请告诉我是否有人可以成功配置它。我的错误是,我需要在类路径中包含
$CATALINA_BASE/lib
,以便拾取log4j2.xml
。我采取了以下步骤,它对我有效
- log4j 2内核(log4j-core-2.4.1.jar)
- log4j 2 api(log4j-api-2.4.1.jar)
- log4j 1.0的log4j 2桥(log4j-1.2-api-2.4.1.jar)
- 来自tomcat extras的tomcat-juli-adapters.jar
诀窍是按照官方设置log4j1.X,但使用log4j2工件。此外,此解决方案不需要对$CATALINA_HOME/bin/CATALINA.sh或任何其他文件$CATALINA_HOME/bin进行任何更改,请根据您的安装调整以下内容: 我的Tomcat 8.5.x位于/opt/Tomcat/ 1。将log4j2 jar文件复制到/opt/tomcat/lib/
- cp/opt/tomcat/lib/
- cp/opt/tomcat/lib/
- cp/opt/tomcat/lib/
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="OFF">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="LOGJ2 %d [%-6p] %c{1} – %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="*" level="trace">
<AppenderRef ref="Console"/>
</Logger>
<Root level="info">
<appenderRef ref="Console" level="info"/>
</Root>
</Loggers>
</Configuration>
LOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener – Server built: Sep 28 2017 10:30:11 UTC
LOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener – Server number: 8.5.23.0
LOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener – OS Name: Linux
LOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener – OS Version: 4.4.0-93-generic
LOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener – Architecture: amd64
4。查看logs in/opt/tomcat/log/catalina.out并注意log42.xml中的LOGJ2前缀
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="OFF">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="LOGJ2 %d [%-6p] %c{1} – %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="*" level="trace">
<AppenderRef ref="Console"/>
</Logger>
<Root level="info">
<appenderRef ref="Console" level="info"/>
</Root>
</Loggers>
</Configuration>
LOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener – Server built: Sep 28 2017 10:30:11 UTC
LOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener – Server number: 8.5.23.0
LOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener – OS Name: Linux
LOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener – OS Version: 4.4.0-93-generic
LOGJ2 2017-10-12 08:47:37,797 [INFO ] VersionLoggerListener – Architecture: amd64
添加下面提到的罐子对我很有效 ApacheTomcat/7.0.70 :
LOG_PARAMS="-Dlog4j.configurationFile=file:///tomcat/conf/log4j2.xml"
/tomcat/conf/log4j2.xml
%d%-5p[%c][%t][%x]%m%n
为什么必须在类路径中添加$CATALINA_BASE/lib?根据文档,$CATALINA_BASE/lib或$CATALINA_BASE/bin中的库应优先于$CATALINA_HOME/lib或$CATALINA_HOME/bin中的库。因此,不需要向类路径添加任何内容,类路径应该根据$CATALINA_BASE的定义正确构建。尽管如此,我对Tomcat8也有同样的问题。我得到了以下错误:无法加载Logmanager“org.apache.logging.log4j.jul.Logmanager”java.lang.ClassNotFoundException:…事实上,不设置类路径,您只需为log4j定义logging_CONFIG变量,如下所示:logging_CONFIG=“-Dlog4j.configurationFile=${CATALINA_BASE}/conf/log4j2.xml”如果您的配置文件是${CATALINA_BASE}/conf/log4j2.xml.Perfect!我将这些步骤与log4j2.xml结合使用:@bmaupin我需要将提到的xml文件放在哪里???@gahse请参阅上面答案中的步骤4@hi@bmaupin谢谢你的文件,它很棒。