log4j使用

 昨天部署web应用到Tomcat之后,无法成功启动,并且控制台没有详细的错误信息,

    顶多就两行提示信息,例如:

Java代码 复制代码
  1. 严重: Error listenerStart   
  2. 严重: Context [/lizongbo] startup failed due to previous errors  
严重: Error listenerStart
严重: Context [/lizongbo] startup failed due to previous errors


    或者 :

Java代码 复制代码
  1. 严重: Error filterStart   
  2. org.apache.catalina.core.StandardContext start   
  3. 严重: Context 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
    配置内容为:

Java代码 复制代码
  1. log4j.rootLogger=ERROR,R   
  2.   
  3. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender   
  4. log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout   
  5. log4j.appender.CONSOLE.layout.ConversionPattern=[%p]%t-%c-%m%n   
  6.   
  7. log4j.appender.R=org.apache.log4j.RollingFileAppender   
  8. log4j.appender.R.File=${catalina.home}/logs/lizongbo.log   
  9. log4j.appender.R.MaxFileSize=10MB   
  10. log4j.appender.R.MaxBackupIndex=10  
  11. log4j.appender.R.layout=org.apache.log4j.PatternLayout   
  12. log4j.appender.R.layout.ConversionPattern=[%p]%t-%c-%m%n   
  13.   
  14. log4j.logger.org.apache.catalina=INFO,R,CONSOLE  
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启动非常的慢.


    在Tomcat6.0中,


     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

   将tomcat-juli-adapters.jar,log4j-1.2.15.jar,log4j.properties复制到D:\Java\ApacheTomcat6.0.14\lib下面.


    将tomcat-juli.jar复制到D:\Java\apache-tomcat-6.0.14\bin\下面.


    然后启动tomcat,就可以在D:\Java\apache-tomcat-6.0.14\logs下看到lizongbo.log了.

    在 Tomcat5.5中,

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


    将log4j.properties复制到D:\Java\apache-tomcat-5.5.25\common\classes下面.

    然后启动tomcat,就可以在D:\Java\apache-tomcat-5.5.25\logs下看到lizongbo.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上报下面的错误

Java代码 复制代码
  1. “Parse Fatal Error at line 17 column 6: The processing instruction   
  2. target matching “[xX][mM][lL]” is not allowed” )  
“Parse Fatal Error at line 17 column 6: The processing instruction
target matching “[xX][mM][lL]” is not allowed” )



愿意看英文的可以参考官方网站说明:
http://tomcat.apache.org/tomcat-6.0-doc/logging.html

你可能感兴趣的:(apache,spring,tomcat,log4j,Web)