Tomcat6.x 不显示详细日志的问题

以前用Tomcat用得好好的,项目启动的时候错误日志都会输出到控制台,不知道从啥时候开始,Tomcat的详细错误日志不见了,只报一个万恶的Context [] startup failed due to previous errors,却找不到previous errors具体是啥东西,郁闷了很久,在网上查了一下资料,终于解决了这个问题。

 

    Tomcat的官方原文在http://tomcat.apache.org/tomcat-6.0-doc/logging.html 可以找到。

 

    首先找一个log4j的lib包放在tomcat的lib目录下,log4j包在基本的java项目里面都有,随便找一个扔进去应该就可以了,然后在lib目录新建一个log4j.properties文件,内容为:

Xml代码  
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.base}/logs/yazuo_weibo.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

    去http://apache.freelamp.com/tomcat/tomcat-6/v6.0.26/bin/extras/ 下载两个文件:

tomcat-juli-adapters.jar放到tomcat的lib目录下,tomcat-juli.jar覆盖到tomcat的bin目录下,注意要下载对应你的tomcat版本的文件。

    现在重启tomcat,详细的日志文件又回来了。


#########################下面部分是转载#################################################

http://www.apache.org/dist/tomcat/tomcat-6/v6.0.29/bin/extras/tomcat-juli-adapters.jar
http://www.apache.org/dist/tomcat/tomcat-6/v6.0.29/bin/extras/tomcat-juli.jar
其中v6.0.29为tomcat的版本号,请根据具体版本进行修改后下载,以保证最后正常效果。
接下去再保证已经有log4j的情况下。
按照如下目录结构来放置:
######################################################################
tomcat6-------lib
                |       |--------tomcat-juli-adapters.jar
                |       |--------log4j.jar
                |       |--------log4j.properties
                | 
                |----bin
                         |--------tomcat-juli.jar
       |---------webapps
                        |-----xxx\WEB-INF
                                        |---classes
                                                   |----log4j.properties
######################################################################

最后把log4j.properties里的配置写好就可以了。
如:
######################################################################
log4j.rootLogger = DEBUG, Console, LogFile, ErrorFile


# Output the log info to the Java Console #
log4j.appender.Console = org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target = System.out
log4j.appender.Console.ImmediateFlush = true
log4j.appender.Console.Threshold = DEBUG
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern = <%-d{yyyy-MM-dd HH:mm:ss}> <%t> %l %n<%p> %m%n%n


# Save the log info to the log file #
log4j.appender.LogFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LogFile.File = ${catalina.base}/logs/info.log
log4j.appender.LogFile.Append = true
log4j.appender.LogFile.ImmediateFlush = false
log4j.appender.LogFile.Threshold = INFO
log4j.appender.LogFile.layout = org.apache.log4j.PatternLayout
log4j.appender.LogFile.layout.ConversionPattern = <%-d{yyyy-MM-dd HH:mm:ss}> <%t> %l %n<%p> %m%n%n


# Save the error info to the error file. A file one day. #
log4j.appender.ErrorFile = org.apache.log4j.DailyRollingFileAppender
log4j.appender.ErrorFile.File = ${catalina.base}/logs/error.log
log4j.appender.ErrorFile.Append = true
log4j.appender.ErrorFile.ImmediateFlush = false
log4j.appender.ErrorFile.Threshold = ERROR
log4j.appender.ErrorFile.layout = org.apache.log4j.PatternLayout
log4j.appender.ErrorFile.layout.ConversionPattern =<%-d{yyyy-MM-dd HH\:mm\:ss}> <%t> %l %n<%p> %m%n%n
######################################################################
客户要求:log4j只输出程序中添加的日志内容,屏蔽其他任何日志输出。 
试着配置了一下log4j。 
1。屏蔽 S2SH 框架中的 spring 组件的日志。 
2。屏蔽 S2SH 框架中的 struts2 组件的日志。 
3。屏蔽 S2SH 框架中的 hibernate 组件的日志。 

配置如下: 
Java代码   收藏代码
  1. ## Disable other log  
  2. log4j.logger.org.springframework=OFF  
  3. log4j.logger.com.opensymphony.xwork2=OFF  
  4. log4j.logger.org.hibernate=OFF  


启动程序,发现仍然有 struts2 组件 com.opensymphony.xwork2 包下的日志输出。 
尝试多次,无果。 
查看 struts2 的包结构,加入 org.apache.struts2 后,搞定。 
特记录配置如下: 
Java代码   收藏代码
  1. ## root logger level [ALL,DEBUG,INFO,WARN,ERROR,FATAL,OFF]  
  2. log4j.rootLogger=DEBUG,F_DEBUG,F_INFO,F_WARN,F_ERROR  
  3. ## Disable other log  
  4. log4j.logger.org.springframework=OFF  
  5. log4j.logger.org.apache.struts2=OFF  
  6. log4j.logger.com.opensymphony.xwork2=OFF  
  7. log4j.logger.com.ibatis=OFF  
  8. log4j.logger.org.hibernate=OFF  
  9.   
  10. ## console appender  
  11. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  
  12. log4j.appender.CONSOLE.Target=System.out  
  13. log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
  14. log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} [%-5p][%t] method:%l%n    %m%n  
  15.   
  16. ## DEBUG  
  17. log4j.appender.F_DEBUG=org.apache.log4j.DailyRollingFileAppender  
  18. log4j.appender.F_DEBUG.Threshold=DEBUG  
  19. log4j.appender.F_DEBUG.file=LOGS/debug/debug.log  
  20. log4j.appender.F_DEBUG.DatePattern='_'yyyy-MM-dd'.log'  
  21. log4j.appender.F_DEBUG.Encoding=UTF-8  
  22. log4j.appender.F_DEBUG.layout=org.apache.log4j.PatternLayout  
  23. log4j.appender.F_DEBUG.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} [%-5p][%t] method\:%l%n    %m%n   
  24.   
  25. ## INFO  
  26. log4j.appender.F_INFO=org.apache.log4j.DailyRollingFileAppender  
  27. log4j.appender.F_INFO.Threshold=INFO  
  28. log4j.appender.F_INFO.file=LOGS/info/info.log  
  29. log4j.appender.F_INFO.DatePattern='_'yyyy-MM-dd'.log'  
  30. log4j.appender.F_INFO.Encoding=UTF-8  
  31. log4j.appender.F_INFO.layout=org.apache.log4j.PatternLayout  
  32. log4j.appender.F_INFO.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} [%-5p][%t] method\:%l%n    %m%n   
  33.   
  34. ## WARN  
  35. log4j.appender.F_WARN=org.apache.log4j.DailyRollingFileAppender  
  36. log4j.appender.F_WARN.Threshold=WARN  
  37. log4j.appender.F_WARN.file=LOGS/warn/warn.log  
  38. log4j.appender.F_WARN.DatePattern='_'yyyy-MM-dd'.log'  
  39. log4j.appender.F_WARN.Encoding=UTF-8  
  40. log4j.appender.F_WARN.layout=org.apache.log4j.PatternLayout  
  41. log4j.appender.F_WARN.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} [%-5p][%t] method\:%l%n    %m%n   
  42.   
  43. ## ERROR  
  44. log4j.appender.F_ERROR=org.apache.log4j.DailyRollingFileAppender  
  45. log4j.appender.F_ERROR.Threshold=ERROR  
  46. log4j.appender.F_ERROR.file=LOGS/error/error.log  
  47. log4j.appender.F_ERROR.DatePattern='_'yyyy-MM-dd'.log'  
  48. log4j.appender.F_ERROR.Encoding=UTF-8  
  49. log4j.appender.F_ERROR.layout=org.apache.log4j.PatternLayout  
  50. log4j.appender.F_ERROR.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} [%-5p][%t] method\:%l%n    %m%n   


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值