用log4j输出tomcat详细日志

昨天部署web应用到Tomcat 之后,无法成功启动,并且控制台没有详细的错误信息,
顶多就两行提示信息,例如:
严重: Error listenerStart
严重: Context [/lizongbo] startup failed due to previous errors

或者

严重: Error filterStart
org.apache.catalina.core.StandardContext start
严重: Context startup failed due to previous errors

查找logs目录下的信息,除了这两句话,也没别的辅助内容.
给查错带来了困难,在这种情况下,是因为 Tomcat 自身的默认日志没有将一些错误信息输出到控制台或文件,
这个时候则需要配置 Tomcat 自身的log,启用详细的调试日志.

Tomcat 5.5和 Tomcat 6.0中的配置基本一样,只是相关文件放的目录有所不同.

首先需要准备的文件为:

1. log4j.jar , 下载地址 : http://www.apache.org/dist/logging/log4j/1.2.15/apache-log4j-1.2.15.zip
2. Tomcat 5.5所需的 commons-logging.jar ,下载地址: http://www.apache.org/dist/commons/logging/binaries/commons-logging-1.1.zip

3.log4j配置文件:
log4j.properties
配置内容为:

log4j.rootLogger=ERROR,R

log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%p]%t-%c-%m%n

log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/lizongbo.log
log4j.appender.R.MaxFileSize=10MB
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=INFO,R,CONSOLE

#日志级别不能太低,如果配置为debug的话,输出的日志信息太多,导致 tomcat 启动非常的慢.

4. Tomcat 6.0所需的juli替换文件:
http://www.apache.org/dist/ tomcat / tomcat -6/v6.0.14/bin/extras/ tomcat -juli-adapters.jar
http://www.apache.org/dist/ tomcat / tomcat -6/v6.0.14/bin/extras/ tomcat -juli.jar

在Tomcat6.0中,

tomcat -juli-adapters.jar,log4j-1.2.15.jar,log4j.properties复制到apache-tomcat-6.0.20\lib下面.

tomcat -juli.jar复制到apache-tomcat-6.0.20\bin\下面.

然后启动 tomcat ,就可以在apache-tomcat-6.0.20\logs下看到webapp.log了.

在 Tomcat5.5中,

将commons-logging-1.1.jar,log4j-1.2.15.jar,复制到apache- tomcat -5.5.25\common\lib下面.
将log4j.properties复制到apache- tomcat -5.5.25\common\classes下面.

然后启动 tomcat ,就可以在apache- tomcat -5.5.25\logs下看到webapp.log了.

在这个时候,再通过日志文件来分析,则会发现出现这种错误的情况可能有:
1.webapps要用到的classe文件根本没有复制到WEB-INF/classes目录下面
(java.lang.NoClassDefFoundError,而这个信息可能默认没输出到控制台,尤其是用了spring的)
2.要用到lib文件没有复制完,缺少lib
3.lib下的同一个库的jar文件存在多个不同版本,引起版本冲突.
4.lib下的jar与 tomcat 版本不相对应(我遇到的问题是web应用在Tomcat5.5上运行正常,换到Tomcat6.0上就出错,
例如一个用了struts的webapp在 Tomcat 6上报下面的错误
“Parse Fatal Error at line 17 column 6: The processing instruction
target matching “[xX][mM][lL]” is not allowed” )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值