使用log4j接管tomcat日志
前言
工作过程中,发现tomcat会把错误给吃掉的情况,经过各种百度,终于找到了解决方案,那就是使用log4j来接管tomcat日志。这样还有一个好处,可以一日记录一个文件,不会导致catalina.out文件无限大的情况。
操作步骤
一、将log4j的jar包(log4j-1.2.14.jar)和log4j.properties放到tomcat的lib目录下
log4j.rootLogger=info,Console,ROLLING_FILE
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=WARN
log4j.appender.CONSOLE.Target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
#file
log4j.appender.ROLLING_FILE = org.apache.log4j.DailyRollingFileAppender
log4j.appender.ROLLING_FILE.File = ${catalina.home}/logs/meopen.log
log4j.appender.ROLLING_FILE.DatePattern = '.'yyyy-MM-dd
log4j.appender.ROLLING_FILE.Append = true
log4j.appender.ROLLING_FILE.Threshold = INFO
log4j.appender.ROLLING_FILE.layout = org.apache.log4j.PatternLayout
log4j.appender.ROLLING_FILE.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
二、到tomcat官网下载对应版本的tomcat-juli.jar和tomcat-juli-adapters.jar包
下载地址:http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.63/bin/extras/
三、将tomcat-juli-adapters.jar放到tomcat的lib目录下
四、将tomcat-juli.jar放到tomcat的bin目录下(覆盖)
五、修改 Tomcat 的 conf/context.xml文件,将<Context>为<Context swallowOutput="true">
(增加swallowOutput="true" 的属性配置,只有这样才能完全的把tomcat的stdout给接管过来。这一步很关键在官网及网上找了许多资料都没有提及。);
六、删除 Tomcat 的 conf/logging.properties文件(或者重命名-建议);
七、把工程中的log4j.properties 文件拷贝到在 Tomcat 的 lib 目录下;
八、重启tomcat