问题描述:以前用Tomcat用得好好的,项目启动的时候错误日志都会输出到控制台,不知道从啥时候开始,Tomcat的详细错误日志不见了,异常的堆栈信息不见了,让我很是郁闷,在服务器上程序报错也看不到异常堆栈信息。备注:Linux环境下。
解决方案:后来查看Tomcat官方文档:http://tomcat.apache.org/tomcat-6.0-doc/logging.html
了解到Tomcat提供用户自定义日志功能;用户可以定制自己的日志功能,通过一些日志配置;如java.util.logging和log4j.
(一)java.util.logging:
在Tomcat6.0环境下,$CATALINA_BASE/conf 目录下,有个logging.properties文件,在这个文件中,可以定义你的日志功能;具体logging.properties文件中各项含义,请阅读Tomcat官方文档。
(二)log4j:
你也可以引入log4j.jar和log4j.properties来实现你的日志功能,具体log4j的配置请百度或者谷歌下,这里就不具体介绍了。
在使用log4j记录日志功能的时候,请把$CATALINA_BASE/conf 目录下logging.properties文件删除,以防止两种日志记录方式之间的冲突和相互影响;我遇到的这种异常堆栈不打印的情况就属于此种情况。删除logging.properties后一切恢复正常。
如果你采用log4j来实现你的日志功能,删除logging.properties文件还不能解决你的问题,请参考http://tomcat.apache.org/tomcat-6.0-doc/logging.html来设置你的Tomcat:
大致步骤是:
1.替换 $CATALINA_HOME/bin/tomcat-juli.jar
2.替换 $CATALINA_HOME/lib/tomcat-juli-adapters.jar
3.删除 $CATALINA_BASE/conf/logging.properties
4.重启Tomcat