Debian系统下的Tomcat日志文件过大可能会占用大量磁盘空间,影响系统性能。以下是几种解决Tomcat日志文件过大的方法:
使用cronolog进行日志切分
-
安装cronolog:
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz tar zxvf cronolog-1.6.2.tar.gz cd cronolog-1.6.2 ./configure --prefix=/usr/local/cronolog make make install ln -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 = WARNING org.apache.juli.FileHandler.directory = /path/to/tomcat/logs org.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/bash LOG_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