java - 如何在 Tomcat 中为 WebappClassLoader 设置日志记录?

标签 java tomcat log4j classloader

我正尝试根据 http://tomcat.apache.org/tomcat-5.5-doc/logging.html 在 Tomcat 中设置日志记录.
我创建了文件Tomcat5\common\classes\log4j.properties:

log4j.rootLogger=WARN, R 
log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.File=${catalina.home}/logs/tomcat.log 
log4j.appender.R.MaxFileSize=500MB 
log4j.appender.R.MaxBackupIndex=10 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

log4j.logger.org.apache.catalina.loader=DEBUG, C
log4j.appender.C=org.apache.log4j.RollingFileAppender 
log4j.appender.C.File=${catalina.home}/logs/cl.log 
log4j.appender.C.MaxFileSize=500MB 
log4j.appender.C.MaxBackupIndex=10 
log4j.appender.C.layout=org.apache.log4j.PatternLayout 
log4j.appender.C.layout.ConversionPattern=%p %t %c - %m%n

我想查看 org.apache.catalina.loader.WebappClassLoader 类的方法 loadClass 的跟踪。
但是只有 org.apache.catalina.loader.WebappLoader 的踪迹。

有人可以解释为什么没有来自 WebappClassLoader 的任何痕迹以及如何打开它们吗?

更新:
isDebugEnabled 对于 WebappLoader 返回 true,但对于 WebappClassLoader 返回 false。
为什么?

最佳答案

WebappClassLoader 在加载 Log4J 之前被初始化。 因此,要在 Tomcat 中为 WebappClassLoader 设置日志记录,您需要将 log4j.jar(和 commons-logging.jar?)和 loj4j.properties 添加到 JVM 的类路径中,Tomcat 将在其中运行。

关于java - 如何在 Tomcat 中为 WebappClassLoader 设置日志记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9665863/

相关文章:

java - 为什么 Apache Tomcat7 在设置虚拟主机后无法启动?

spring-boot - Spring boot logback 到文件在 tomcat 上不起作用

exception - 在日志中记录 Grails 应用程序中的错误

scala - Maven 构建错误(Scala + Spark):object apache is not a member of package org

Java 8 流 API : get all nodes after specific Node

java - 使用 lib JShortcut 在 java 中创建快捷方式

java - Eclipse插件开发: How to include another project?

java - 如何正确获得此 GUI 布局?

session - Tomcat session 复制

java - Log4J 的默认 MessageFactory 是什么