当Ubuntu上的Tomcat日志文件(通常是catalina.out
)过大时,可能会占用大量磁盘空间,影响系统性能,并且难以管理和分析。以下是一些解决Tomcat日志文件过大的方法:
使用 logrotate
进行日志轮转
logrotate
是Linux系统自带的日志轮转工具,可以自动切割、压缩、删除和邮件通知日志文件。
-
编辑
logrotate
配置文件:打开
/etc/logrotate.conf
文件,确保包含以下配置:/home/tomcat/logs/catalina.out { daily rotate 20 compress missingok notifempty create 0644 tomcat tomcat }
这个配置表示每天轮转
catalina.out
文件,保留最多20个备份,使用gzip压缩旧日志文件。 -
创建
logrotate
配置文件:在
/etc/logrotate.d/
目录下创建一个名为tomcat
的文件,内容如下:/home/tomcat/logs/catalina.out { daily rotate 20 compress missingok notifempty create 0644 tomcat tomcat }
-
手动执行
logrotate
:你也可以手动执行
logrotate
命令来测试配置是否正确:sudo logrotate -d /etc/logrotate.conf # 测试配置 sudo logrotate -f /etc/logrotate.conf # 强制重新生成配置
-
设置
logrotate
定时任务:logrotate
会自动在每天执行日志轮转任务。你也可以手动触发:sudo logrotate -f /etc/logrotate.conf # 强制重新生成配置
使用 cronolog
进行日志轮转
cronolog
是一个基于 logrotate
的工具,可以更灵活地控制日志文件的命名和轮转。
-
安装
cronolog
:sudo apt-get install cronolog
-
修改
catalina.sh
文件:编辑
/usr/local/tomcat/bin/catalina.sh
文件,在catalina.out
的日志路径前添加cronolog
:CATALINA_OUT="/usr/local/tomcat/logs/catalina.%Y-%m-%d.out"
-
重启 Tomcat:
修改完成后,重启 Tomcat 以使配置生效:
sudo service tomcat8 restart
调整日志级别
通过调整日志级别,可以减少不必要的日志输出,从而减少日志文件的大小。
-
修改
logging.properties
文件:打开
/usr/local/tomcat/conf/logging.properties
文件,调整日志级别:org.apache.catalina.core.ContainerBase.[Catalina].level = WARNING org.apache.catalina.core.ContainerBase.[Catalina].handlers = 2localhost.org.apache.juli.AsyncFileHandler
-
禁用不必要的日志:
如果你不需要某些特定的日志,可以在
server.xml
中配置Valve
来禁用它们。例如,禁用访问日志:
手动清理日志
如果上述方法都不适用,你可以手动清理日志文件。
-
清空日志文件:
sudo rm -f /usr/local/tomcat/logs/catalina.out
-
定期清理旧日志:
使用
cron
定时任务定期删除旧的日志文件:crontab -e
添加以下行以每天删除7天前的日志文件:
0 0 * * * find /usr/local/tomcat/logs/ -mtime +7 -type f -name "*.log" -exec rm -f {} \;
通过以上方法,你可以有效地管理Tomcat日志文件的大小,减少对服务器性能的影响。