一、日志文件定位
Tomcat日志默认存放在$CATALINA_HOME/logs目录下,常见文件包括:
catalina.out:主日志,记录启动、运行及错误信息。localhost.log:应用部署及上下文加载日志。access_log.*.txt:HTTP访问日志,记录请求IP、时间、状态码等。
二、基础查看与分析
- 实时查看:用
tail -f catalina.out跟踪最新日志。 - 分页查看:用
less或more命令分页浏览日志。 - 关键字搜索:用
grep "ERROR" catalina.out筛选错误信息。 - 字段提取:用
awk提取特定字段(如时间、IP),cut -d' ' -f1-3按空格提取前3字段。
三、高级分析技巧
- 日志过滤与统计:
- 用
sed按时间范围筛选日志,如sed -n '/2025-01-01 00:00:00/,/2025-01-01 23:59:59/p' catalina.out。 - 用
sort | uniq -c统计重复日志条目,如grep "404" access_log | sort | uniq -c。
- 用
- 工具集成分析:
- ELK Stack:Logstash采集日志,Elasticsearch存储,Kibana可视化,适合大规模日志分析。
- Graylog:支持实时搜索、告警和仪表板,适合复杂环境。
- GoAccess:快速分析访问日志,生成访问量、响应时间等统计图表。
四、常见问题定位
- 端口冲突:通过
netstat -tulnp或lsof -i :端口号检查,修改conf/server.xml中端口配置。 - 内存不足:查看
catalina.out中OutOfMemoryError,调整catalina.sh中JAVA_OPTS参数(如-Xms512m -Xmx1024m)。 - 类加载错误:根据
ClassNotFoundException定位缺失的JAR包,检查WEB-INF/lib目录。 - 数据库连接问题:分析
localhost.log中数据库异常,确认URL、用户名、密码及服务状态。
五、日志管理建议
- 定期轮转:用
logrotate配置日志压缩和删除策略,如/etc/logrotate.d/tomcat中设置daily rotate 7 compress。 - 权限设置:确保日志文件权限为
640,属主为Tomcat运行用户,避免权限不足导致写入失败。