我正在使用此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
答案 0 :(得分:1)
我真的很感激如何调试这个
的建议
将Tomcat日志消息从java.util.logging发送到log4j 1.x的转换由Apache Commons Logging库执行。 (其编译的包重命名版本位于tomcat-juli.jar
和tomcat-juli-adapters.jar
)
Apache Commons Logging中有一个调试设置available。包重命名后,设置名称变为org.apache.juli.logging.diagnostics.dest
。
我在您执行的步骤中没有看到任何明显的错误。虚拟问题可能是:文件是否可读?
注意:
可以将tomcat-juli-adapters.jar
放入$ CATALINA_HOME / bin而不是/ lib,但是您需要更新CLASSPATH变量(在bin/setenv.sh
中),以便它包含在值中java的-classpath
参数将两个罐子重新包装成一个jar文件也是一种选择。
如tomcat-7.0-doc/logging.html所述,删除conf/logging.properties
会使java.util.logging回退到默认配置。您可能希望明确配置该文件。
可以在Maven Central找到tomcat-juli.jar
和tomcat-juli-adapters.jar
的源代码。这些图书馆有groupId=org.apache.tomcat.extras