Tomcat的日志文件默认存储在**$CATALINA_HOME/logs**目录下($CATALINA_HOME为Tomcat安装根目录,如/usr/local/tomcat、/opt/tomcat等)。常见日志文件及作用如下:
localhost_access_log.2025-10-21.txt),记录客户端请求的详细信息(时间、方法、路径、状态码、响应时间等)。使用tail -f命令持续显示日志文件末尾的新增内容,适用于监控Tomcat启动过程或实时排查运行时问题(如应用部署失败、接口异常)。
tail -f /path/to/tomcat/logs/catalina.out
按Ctrl+C终止跟踪。若需同时监控多个日志(如访问日志),可使用multitail工具(需提前安装):
multitail /path/to/tomcat/logs/catalina.out /path/to/tomcat/logs/localhost_access_log.txt
使用less或more命令分页浏览日志文件,适合查看历史日志或大文件(避免终端输出过多导致卡顿)。
less /path/to/tomcat/logs/catalina.out
操作说明:
Page Up/Page Down:逐行/逐页滚动;/keyword:向下搜索关键字(如ERROR);?keyword:向上搜索关键字;n:跳转至下一个匹配项;q:退出查看。more /path/to/tomcat/logs/catalina.out
操作说明:
Enter:向下翻行;/keyword:搜索关键字;b:回滚至上一页;q:退出查看。使用grep命令筛选日志中包含特定关键字的行,帮助快速定位错误或感兴趣的信息(如ERROR、Exception、404等)。
grep "ERROR" /path/to/tomcat/logs/catalina.out
grep -C3 "Exception" /path/to/tomcat/logs/catalina.out
tail实时过滤:tail -f /path/to/tomcat/logs/catalina.out | grep -i "error"
(-i表示不区分大小写)若需分析某一时间段的日志(如故障发生时段),可使用sed或grep命令截取指定时间范围内的内容。
sed -n '/2025-10-21 14:00:00/,/2025-10-21 15:00:00/p' /path/to/tomcat/logs/catalina.out
(提取14:00至15:00之间的日志)grep -E '2025-10-21 (14:[0-5][0-9]|15:00)' /path/to/tomcat/logs/catalina.out
(匹配14:00至15:00之间的日志行)Tomcat日志会随时间增长而变大,需通过日志轮转机制压缩、删除旧日志,避免占用过多磁盘空间。
/etc/logrotate.d/tomcat文件(若不存在则创建),添加以下配置:/path/to/tomcat/logs/*.log {
daily # 每天轮转
missingok # 忽略缺失的日志文件
rotate 7 # 保留最近7个轮转文件
compress # 压缩旧日志(如catalina.out.1.gz)
notifempty # 空日志不轮转
create 640 root adm # 创建新日志文件的权限
}
手动触发轮转:logrotate -f /etc/logrotate.d/tomcat
logrotate通常由系统每天定时任务(如cron)自动执行,无需手动干预。通过以上方法,可高效查看、分析Tomcat日志,快速定位运行问题(如启动失败、内存溢出、接口异常等),保障服务稳定运行。