Tomcat的日志文件默认存储在**$CATALINA_HOME/logs**目录下($CATALINA_HOME为Tomcat安装目录)。常见日志文件及作用如下:
localhost_access_log.2025-10-06.txt),记录用户请求的IP、时间、访问资源、响应状态码等信息。使用tail -f命令持续显示日志文件末尾的新增内容,适用于监控Tomcat启动过程或实时排查运行时问题(如应用崩溃、请求异常)。
tail -f /path/to/tomcat/logs/catalina.out
按Ctrl+C终止跟踪。
使用less命令分页浏览日志文件,支持上下翻页(Page Up/Page Down)、跳转到指定行(G/gg)、搜索关键字(按/输入关键词,n跳转下一匹配项)。
less /path/to/tomcat/logs/catalina.out
退出分页模式按q。
结合grep命令筛选日志中的关键字(如“ERROR”“Exception”“Timeout”),缩小排查范围。
# 筛选包含"ERROR"的行(不区分大小写)
tail -f /path/to/tomcat/logs/catalina.out | grep -i 'error'
# 筛选包含"Exception"的行及其前后3行(查看异常堆栈)
tail -f /path/to/tomcat/logs/catalina.out | grep -C3 'Exception'
若需统计错误次数,可添加wc -l:
grep -i 'error' /path/to/tomcat/logs/catalina.out | wc -l
若需分析特定时间段的日志(如某次故障发生的时间段),可使用sed或grep命令:
# 使用sed提取2025-10-06 14:00至15:00之间的日志(需日志时间格式匹配)
sed -n '/2025-10-06 14:00:/,/2025-10-06 15:00:/p' /path/to/tomcat/logs/catalina.out
# 使用grep按日期和小时过滤(适用于日志中包含明确时间戳的情况)
grep '2025-10-06 14:[0-5][0-9]' /path/to/tomcat/logs/catalina.out
使用multitail工具(需提前安装,如yum install multitail或apt install multitail)分屏同时查看多个日志文件,便于对比分析(如同时查看访问日志和错误日志)。
multitail /path/to/tomcat/logs/catalina.out /path/to/tomcat/logs/localhost_access_log.txt
当日志文件过大(如catalina.out超过GB级别)时,会影响Tomcat性能。可通过以下方式处理:
--follow=name参数:跟踪日志文件的新版本(适用于日志按日期分割的情况,如catalina.2025-10-06.out)。tail --follow=name /path/to/tomcat/logs/catalina.out
logrotate工具:自动压缩、删除旧日志(编辑/etc/logrotate.d/tomcat文件,添加以下配置):/path/to/tomcat/logs/*.log {
daily # 每天轮转
missingok # 忽略缺失文件
rotate 7 # 保留最近7天的日志
compress # 压缩旧日志(如.gz格式)
notifempty # 空日志不轮转
create 640 root adm # 创建新日志文件的权限
}
手动触发轮转:logrotate /etc/logrotate.d/tomcat
echo $CATALINA_HOME确认Tomcat安装目录,或通过find / -name "catalina.out" -type f查找日志文件位置。logrotate),避免日志文件占用过多磁盘空间。catalina.sh),确保设置了正确的字符编码(如-Dfile.encoding=UTF-8)。