Tomcat的日志文件默认存储在$CATALINA_HOME/logs目录下($CATALINA_HOME为Tomcat安装目录的环境变量)。主要日志文件包括:
使用tail命令实时跟踪日志文件的新增内容,是排查实时问题的常用方式:
cd $CATALINA_HOME/logs
tail -f catalina.out # 实时查看catalina.out日志
常用选项:
-f:循环读取文件,实时显示最新内容;-n 100:显示最后100行日志;Ctrl+C:停止实时查看。日志轮转可防止日志文件过大占用磁盘空间,常用方法有两种:
编辑/etc/logrotate.d/tomcat文件(若不存在则创建),添加以下配置(以catalina.out为例):
/usr/local/tomcat/logs/catalina.out {
daily # 每天轮转
rotate 7 # 保留最近7天的日志
compress # 压缩旧日志(如catalina.out.1.gz)
missingok # 若日志文件不存在也不报错
notifempty # 若日志为空则不轮转
create 0640 tomcat tomcat # 创建新日志文件的权限和所有者
postrotate # 轮转后执行的命令(通知Tomcat重新打开日志文件)
/bin/kill -HUP `cat /var/run/tomcat.pid` 2>/dev/null || true
endscript
}
手动触发轮转测试:
logrotate -f /etc/logrotate.d/tomcat
编辑$CATALINA_HOME/conf/logging.properties文件,修改java.util.logging.FileHandler配置:
java.util.logging.FileHandler.level = INFO
java.util.logging.FileHandler.pattern = ${catalina.base}/logs/catalina.%g.log # 日志命名模式(%g为序号)
java.util.logging.FileHandler.limit = 10485760 # 单个日志文件最大10MB(10*1024*1024字节)
java.util.logging.FileHandler.count = 5 # 保留5个备份文件
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
重启Tomcat使配置生效:
$CATALINA_HOME/bin/shutdown.sh && $CATALINA_HOME/bin/startup.sh
grep命令查找特定错误或关键词(如“ERROR”):tail -f catalina.out | grep "ERROR" # 实时过滤ERROR日志
sed命令截取指定时间范围的日志(如2025-10-01至2025-10-02):sed -n '/2025-10-01 00:00/,/2025-10-02 00:00/p' catalina.out > /tmp/tomcat_error.log
journalctl查看统一日志:journalctl -u tomcat.service -f # 实时查看Tomcat系统日志
定期清理旧日志可避免磁盘空间耗尽,常用方法:
find $CATALINA_HOME/logs/ -mtime +15 -name "*.log" -exec rm -rf {} \;
auto-del-logs.sh),并添加到crontab定时任务:#!/bin/bash
find $CATALINA_HOME/logs/ -mtime +15 -name "*.*" -exec rm -rf {} \;
添加定时任务(每天凌晨1点执行):crontab -e
# 添加以下行
0 1 * * * /path/to/auto-del-logs.sh
若不需要详细日志,可通过修改配置降低日志级别:
WARNING(仅记录警告及以上级别日志):handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
.handlers = 1catalina.org.apache.juli.AsyncFileHandler
1catalina.org.apache.juli.AsyncFileHandler.level = WARNING
JAVA_OPTS参数,关闭调试日志:export JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.config.file=$CATALINA_HOME/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
以上方法覆盖了CentOS下Tomcat日志的查看、轮转、分析、清理全流程,可根据实际需求选择组合使用,确保日志管理的高效性和规范性。