分析 Linux 下 Tomcat 日志,通常可以按日志类型 → 分析工具 → 常见场景 → 实战命令的思路来进行。下面给你一套比较实用的方法。
默认在:
$TOMCAT_HOME/logs/
常见日志文件:
| 文件 | 说明 |
|---|---|
catalina.out |
主日志,最常用 |
catalina.YYYY-MM-DD.log |
按天分割的 catalina 日志 |
localhost.YYYY-MM-DD.log |
本地应用相关 |
localhost_access_log.YYYY-MM-DD.txt |
访问日志(类似 Nginx) |
manager / host-manager |
管理端日志 |
tail -f catalina.out
tail -n 200 catalina.out
grep -i "exception" catalina.out
grep -i "OutOfMemory" catalina.out
sed -n '/2025-01-21 10:00/,/2025-01-21 11:00/p' catalina.out
grep -A 20 "Exception" catalina.out
重点看:
Caused byStack TraceOutOfMemoryErrorClassNotFoundException访问日志示例:
127.0.0.1 - - [21/Jan/2025:10:12:01 +0800] "GET /api/test HTTP/1.1" 200 1234
统计访问量:
wc -l localhost_access_log.2025-01-21.txt
统计状态码:
awk '{print $9}' localhost_access_log.*.txt | sort | uniq -c
统计慢请求(假设有响应时间):
awk '$10 > 1000' localhost_access_log.*.txt
关注:
OutOfMemoryErrorGC overhead limit exceeded可配合:
grep -i "memory" catalina.out
并查看 JVM 参数:
ps -ef | grep tomcat
tail -n 100 catalina.out
常见原因:
logrotate
例如:每天统计错误数
grep -c "ERROR" catalina.$(date +%F).log
如果你愿意,可以:
我可以帮你逐行分析。