tomcat7配置log4j解决catalina.out日志过大问题

来源:互联网 发布:湖北省软件行业协会 编辑:程序博客网 时间:2024/06/08 00:03

tomcat默认安装后,会每天会自动切割日志文件,(catalina.2010-10-08.log、catalina.2010-10-09.log、catalina.2010-10-10.log)这样的形式,但是他的catalina.out不清空,任其自由增长,时间长了系统性能急剧下降。


要解决catalina.out过大问题,网上有很多种方法,如:使用日志切割工具、或者自己写定时脚本:

#!/bin/bashcd `dirname $0`d=`date +%Y%m%d`d7=`date -d'7 day ago' +%Y%m%d`cd ../logs/cp catalina.out catalina.out.${d}cat /dev/null > catalina.outrm -rf catalina.out.${d7}
对其日志进行切割每天生成一个文件,并且删除7天前的文件。


其次,还可以对tomcat进行log4j配置,使用log4j的日志“切割”方式。配置如下:

1)下载与tomcat对应版本的tomcat-juli.jar 和 tomcat-juli-adapters.jar,或者tomcat-extras-juli-7.0.70.jar和tomcat-extras-juli-adapters-7.0.70.jar:

https://mvnrepository.com/artifact/org.apache.tomcat.extrashttps://mvnrepository.com/artifact/org.apache.tomcat


2)将log4j.jar 和 tomcat-juli-adapters.jar放到$CATALINA_HOME/lib目录下;


3)将log4j.properties 放到$CATALINA_HOME/lib目录下;


4)用新下载的tomcat-juli.jar替换掉$CATALINA_HOME/bin/中的tomcat-juli.jar;(下载的tomcat-juli.jar包含了所有Commons Logging实现,能够发现log4j和配置)


5)删除$CATALINA_BASE/conf/logging.properties


6)修改 Tomcat 的 conf/context.xml 文件,将<Context>改为<Context swallowOutput="true">

7)重启tomcat


log4j.rootLogger = INFO, CATALINA# Define all the appenderslog4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.CATALINA.File = ${catalina.base}/logs/catalinalog4j.appender.CATALINA.Append = truelog4j.appender.CATALINA.Encoding = UTF-8# Roll-over the log once per daylog4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd'.log'log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayoutlog4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%nlog4j.appender.LOCALHOST = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.LOCALHOST.File = ${catalina.base}/logs/localhostlog4j.appender.LOCALHOST.Append = truelog4j.appender.LOCALHOST.Encoding = UTF-8log4j.appender.LOCALHOST.DatePattern = '.'yyyy-MM-dd'.log'log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayoutlog4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%nlog4j.appender.MANAGER = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.MANAGER.File = ${catalina.base}/logs/managerlog4j.appender.MANAGER.Append = truelog4j.appender.MANAGER.Encoding = UTF-8log4j.appender.MANAGER.DatePattern = '.'yyyy-MM-dd'.log'log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayoutlog4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%nlog4j.appender.HOST-MANAGER = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.HOST-MANAGER.File = ${catalina.base}/logs/host-managerlog4j.appender.HOST-MANAGER.Append = truelog4j.appender.HOST-MANAGER.Encoding = UTF-8log4j.appender.HOST-MANAGER.DatePattern = '.'yyyy-MM-dd'.log'log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayoutlog4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%nlog4j.appender.CONSOLE = org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.Encoding = UTF-8log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n# Configure which loggers log to which appenderslog4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost] = INFO, LOCALHOSTlog4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager] =\  INFO, MANAGERlog4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager] =\  INFO, HOST-MANAGER

参考:http://my.oschina.net/xldc/blog/298080
https://tomcat.apache.org/tomcat-7.0-doc/logging.html#Using_Log4j


0 0
原创粉丝点击