解决Ubuntu Tomcat日志文件过大问题,可采用以下方法:
使用logrotate进行日志轮转
sudo apt-get install logrotate
/etc/logrotate.d/tomcat
,添加以下内容:/usr/local/tomcat/logs/catalina.out {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
(daily
表示每天轮转,rotate 7
保留7天日志,compress
压缩旧日志,copytruncate
清空原文件而不删除)sudo logrotate -d /etc/logrotate.d/tomcat
,确认无误后重启Tomcat。切换至Log4j日志框架
log4j-1.2.17.jar
和tomcat-juli-adapters.jar
,放入Tomcat的lib
目录。conf/logging.properties
,配置日志文件路径、大小及保留天数,例如:catalina.org.apache.juli.FileHandler.limit=10MB
catalina.org.apache.juli.FileHandler.count=7
使用cronolog工具切割日志
sudo apt-get install cronolog
bin/catalina.sh
,将日志输出指向cronolog,例如:CATALINA_OUT="$CATALINA_BASE/logs/catalina.%Y-%m-%d.out"
exec "$_RUNJAVA" ... | /usr/local/sbin/cronolog "$CATALINA_OUT" &
定期清理日志脚本
clear_tomcat_logs.sh
:#!/bin/bash
LOG_PATH="/usr/local/tomcat/logs"
find "$LOG_PATH" -mtime +7 -name "*.log" -exec rm -rf {} \;
echo "" > "$LOG_PATH/catalina.out"
sudo chmod +x clear_tomcat_logs.sh
sudo crontab -e
,添加0 0 * * * /path/to/clear_tomcat_logs.sh
。注意:操作前建议备份重要日志,生产环境建议优先使用logrotate或Log4j,避免日志丢失影响故障排查。