Debian系统下的Tomcat日志文件过大可能会占用大量磁盘空间,影响系统性能。以下是几种解决Tomcat日志文件过大的方法:
使用cronolog进行日志切分
安装cronolog:
wget http://cronolog.org/download/cronolog-1.6.2.tar.gztar zxvf cronolog-1.6.2.tar.gzcd cronolog-1.6.2./configure --prefix=/usr/local/cronologmakemake installln -s /usr/local/cronolog/sbin/* /usr/local/sbin/
修改Tomcat启动脚本:编辑
/path/to/tomcat/bin/catalina.sh
,在以下几行进行如下修改:# 注释掉下面这行# touch "/path/to/tomcat/logs/catalina.out"# 修改下面这行org.apache.catalina.startup.Bootstrap "@" start "/usr/local/sbin/cronolog \"/path/to/tomcat/logs/catalina.%Y-%m-%d.out\" /dev/null &"
重启Tomcat:执行以下命令重启Tomcat,使配置生效:
/path/to/tomcat/bin/startup.sh/path/to/tomcat/bin/shutdown.sh
使用logrotate进行日志轮转
安装logrotate(如果尚未安装):
sudo apt-get install logrotate
创建或编辑logrotate配置文件:在
/etc/logrotate.d/
目录下创建或编辑tomcat
配置文件:sudo vim /etc/logrotate.d/tomcat
内容如下:
/path/to/tomcat/logs/catalina.out { copytruncate daily rotate 7 missingok compress size 16M}
测试logrotate配置:执行以下命令测试配置是否正确:
logrotate -d /etc/logrotate.conf # -d 表示测试模式
手动执行logrotate:如果需要立即执行日志轮转:
logrotate -f /etc/logrotate.conf # -f 表示强制模式
修改Tomcat日志配置
编辑
logging.properties
文件:找到/path/to/tomcat/conf/logging.properties
文件,修改以下配置:org.apache.juli.FileHandler.level = WARNINGorg.apache.juli.FileHandler.directory = /path/to/tomcat/logsorg.apache.juli.FileHandler.prefix = catalina
重启Tomcat:使配置生效:
/path/to/tomcat/bin/startup.sh/path/to/tomcat/bin/shutdown.sh
其他方法
- 使用Shell脚本定期清理日志:创建一个Shell脚本
clean_tomcat_logs.sh
,内容如下:#!/bin/bashLOG_DIR="/path/to/tomcat/logs"find "$LOG_DIR" -mtime +7 -name "*.log" -exec rm -f { } \;find "$LOG_DIR" -mtime +7 -name "*.txt" -exec rm -f { } \;
赋予脚本执行权限:chmod +x /path/to/tomcat/logs/clean_tomcat_logs.sh
使用crontab
定时执行脚本:crontab -e
添加以下行以每天凌晨执行清理任务:0 0 * * * /path/to/tomcat/logs/clean_tomcat_logs.sh