【问题标题】:How to setup logging in Tomcat for WebappClassLoader?如何在 Tomcat 中为 WebappClassLoader 设置日志记录?
【发布时间】:2012-03-12 11:01:08
【问题描述】:

我正在尝试根据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。
为什么?

【问题讨论】:

  • 您启用了DEBUG,而不是TRACE
  • 是的。我想查看 if (log.isDebugEnabled()) log.debug("loadClass(" + name + ", " + resolve + ")");

标签: java tomcat log4j classloader


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 2011-05-06
  • 2012-04-20
  • 1970-01-01
  • 2012-09-24
  • 1970-01-01
  • 2019-11-25
  • 2013-11-26
  • 1970-01-01
  • 2016-02-17
相关资源
最近更新 更多