似乎无法将Tomcat日志重定向到log4j

时间:2015-11-12 18:30:17

标签: java tomcat log4j

我正在使用此doc将我的Tomcat记录器更改为log4j:

https://tomcat.apache.org/tomcat-7.0-doc/logging.html

我的log4j.properties文件如文档所示,但我更改了这一行以确认它正在工作: log4j.appender.CATALINA.File = $ {catalina.base} / logs / test_catalina

我仍然看到一个文件logs / catalina.out而不是logs / test_catalina,这让我觉得没有使用log4j或者我的属性文件没有被读取。

我在lib中有tomcat-juli-adapters.jar,log4j-1.2.17.jar和log4j.properties 并覆盖bin / tomcat-juli.jar

运行set -x catalina.sh start显示:

 eval "/a/java64/jdk1.8.0/bin/java" "-Dnop" -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dlog4j.debug=true  -Djava.endorsed.
dirs="/opt/apache-tomcat-7.0.62/endorsed" -classpath "/opt/apache-tomcat-7.0.62/bin/bootstrap.jar:/opt/apache-tomcat-7.0.62/bin/tomcat-juli.jar" -Dcatalina.base="/opt/apache-tomcat-7.0.62" -Dcatalina.home="/opt/apache-tom
cat-7.0.62" -Djava.io.tmpdir="/opt/apache-tomcat-7.0.62/temp" org.apache.catalina.startup.Bootstrap start &

我在磁盘上也没有logging.properties文件:

ls conf/*.properties 
conf/catalina.properties

我真的很感激如何调试这个的建议 - 我不确定是否找不到正确的jar,如果我的log4j.properties有问题,或者只是简单的Tomcat无法告诉我我喜欢log4j。

使用Tomcat版本服务器编号:7.0.62.0

1 个答案:

答案 0 :(得分:1)

  

我真的很感激如何调试这个

的建议

将Tomcat日志消息从java.util.logging发送到log4j 1.x的转换由Apache Commons Logging库执行。 (其编译的包重命名版本位于tomcat-juli.jartomcat-juli-adapters.jar

Apache Commons Logging中有一个调试设置available。包重命名后,设置名称变为org.apache.juli.logging.diagnostics.dest

我在您执行的步骤中没有看到任何明显的错误。虚拟问题可能是:文件是否可读?

注意:

  1. 可以将tomcat-juli-adapters.jar放入$ CATALINA_HOME / bin而不是/ lib,但是您需要更新CLASSPATH变量(在bin/setenv.sh中),以便它包含在值中java的-classpath参数将两个罐子重新包装成一个jar文件也是一种选择。

  2. tomcat-7.0-doc/logging.html所述,删除conf/logging.properties会使java.util.logging回退到默认配置。您可能希望明确配置该文件。

  3. 可以在Maven Central找到tomcat-juli.jartomcat-juli-adapters.jar的源代码。这些图书馆有groupId=org.apache.tomcat.extras