Tomcat的日志文件默认存储在$CATALINA_HOME/logs目录下($CATALINA_HOME为Tomcat安装目录的环境变量)。常见路径包括:
/opt/tomcat/logs/(若自定义安装路径,需替换为实际路径);/var/log/tomcat6/。catalina.out:Tomcat主日志,包含启动/停止信息、运行时错误及常规日志;localhost.<date>.log:本地主机活动日志(如Servlet初始化、JNDI绑定);manager.<date>.log:Tomcat Manager应用日志(部署/卸载应用的操作记录);host-manager.<date>.log:Host Manager应用日志(虚拟主机管理操作记录);access_log.<date>.txt:访问日志(记录HTTP请求详情,如IP、URL、响应状态)。使用tail -f命令可实时跟踪日志文件的新增内容,适用于故障排查时监控实时日志:
# 进入日志目录
cd $CATALINA_HOME/logs
# 实时查看主日志(catalina.out)
tail -f catalina.out
常用参数说明:
-f:持续跟踪文件更新(按Ctrl+C停止);-n 100:显示文件最后100行(如tail -n 100 catalina.out);-q:安静模式(不显示处理信息);-v:详细模式(显示处理细节)。若需查找特定关键字(如“error”“exception”),可结合grep命令过滤日志:
# 实时查看包含“error”的日志行
tail -f catalina.out | grep "error"
# 查找包含“timeout”的行并显示前后5行上下文
grep -A 5 -B 5 "timeout" catalina.out
注:-A表示显示匹配行后的若干行,-B表示显示匹配行前的若干行。
若Tomcat以Systemd服务运行(CentOS 7及以上默认方式),可通过journalctl命令查看统一管理的日志:
# 查看Tomcat服务实时日志
journalctl -u tomcat.service -f
# 查看Tomcat服务的最近10条日志
journalctl -u tomcat.service -n 10
参数说明:
-u:指定服务名称(需替换为实际的Tomcat服务名,如tomcat或tomcat8);-f:实时跟踪日志。若需查看日志文件的完整内容(而非实时更新),可使用less或more命令:
# 使用less分页查看(支持上下翻页、搜索)
less catalina.out
# 使用more分页查看(空格翻页,Enter逐行)
more catalina.out
注:less功能更强大,推荐使用(按q退出)。
若需提取特定时间段的日志(如2025-10-01至2025-10-02),可使用sed或awk命令:
# 使用sed截取指定时间段日志(需日志中包含时间戳)
sed -n "/2025-10-01 00:00/,/2025-10-02 23:59/p" catalina.out > /tmp/tomcat_specific_period.log
# 使用awk截取(需日志时间格式固定)
awk '/2025-10-01/,/2025-10-02/' catalina.out > /tmp/tomcat_specific_period.log
Tomcat日志文件会随时间增长而变大,需通过logrotate工具定期轮转(压缩、删除旧日志)。默认配置文件位于/etc/logrotate.d/tomcat,示例配置如下:
/usr/local/tomcat/logs/catalina.out {
daily # 每天轮转
rotate 7 # 保留最近7个轮替文件
compress # 压缩旧日志(如catalina.out.1.gz)
missingok # 若日志文件不存在也不报错
notifempty # 若日志为空则不轮转
create 640 tomcat tomcat # 创建新日志文件并设置权限
postrotate
/bin/kill -HUP `cat /var/run/tomcat.pid` 2>/dev/null || true # 重启Tomcat以重新打开日志文件
endscript
}
注:修改配置后,logrotate会自动按计划执行(通常每日一次),无需手动操作。
通过上述方法,可高效查看、过滤及管理CentOS系统中Tomcat的日志文件,助力故障排查与系统监控。