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

问题描述:

我正在尝试根据http://tomcat.apache.org/tomcat-5.5-doc/logging.html在Tomcat中设置日志记录。
我创建的文件Tomcat5的\ COMMON \ \班log4j.properties如何在Tomcat中为WebappClassLoader设置日志记录?

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 

我想看到从方法的loadClassorg.apache.catalina.loader.WebappClassLoader类的痕迹。
但只有org.apache.catalina.loader.WebappLoader的痕迹。

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

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

+0

您已经启用了'DEBUG',而不是'TRACE'。 – adarshr 2012-03-12 11:25:36

+0

是的。我希望看到来自 的痕迹,如果(log.isDebugEnabled()) log.debug(“loadClass(”+ name +“,”+ resolve +“)”); – 2012-03-12 11:37:04

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

+0

WebappClassLoader不使用log4j,但是JULI参见例如http://grepcode.com/file/repo1.maven.org/maven2/org.apache.tomcat/tomcat-catalina/7.0.0/org/apache/catalina/loader/WebappClassLoader.java/ – 0x89 2015-01-12 14:27:01