在CentOS系统中,Tomcat的日志文件默认存储在**$CATALINA_HOME/logs**目录下($CATALINA_HOME为Tomcat安装目录,如/opt/tomcat或/usr/share/tomcat)。主要日志文件及作用如下:
1. 实时查看最新日志
使用tail -f命令可实时输出catalina.out的新内容,帮助快速发现异常(如应用崩溃、端口冲突):
tail -f /opt/tomcat/logs/catalina.out
按Ctrl+C停止监控。若需调整显示行数(如最后100行),可使用tail -n 100 -f catalina.out。
2. 过滤关键错误信息
结合grep命令过滤ERROR、Exception等关键字,快速定位问题:
tail -f /opt/tomcat/logs/catalina.out | grep -i "error\|exception"
示例输出:
ERROR [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-8080]]
java.net.BindException: Address already in use
上述输出表明8080端口已被占用,需修改Tomcat端口(如server.xml中的<Connector port="8081">)。
1. 查看特定时间段日志
使用sed命令截取指定时间范围的日志(如2025-10-16 14:00至15:00):
sed -n '/2025-10-16 14:00/,/2025-10-16 15:00/p' /opt/tomcat/logs/catalina.out > /tmp/tomcat_error_20251016.txt
将结果保存到/tmp目录,便于后续分析。
2. 使用journalctl查看系统日志
若Tomcat以systemd服务运行(默认方式),可通过journalctl查看服务日志:
journalctl -u tomcat -f
-u tomcat:指定Tomcat服务(需与systemctl status tomcat中的服务名一致);-f:实时监控日志更新。Oct 17 10:30:01 centos systemd[1]: Started Apache Tomcat Web Application Container.
Oct 17 10:30:05 centos tomcat[12345]: INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [1200] milliseconds
该方式可整合系统级日志与服务日志,便于排查系统资源不足(如内存溢出)导致的问题。
Tomcat默认使用logrotate工具自动轮转日志(每日切割),配置文件位于/etc/logrotate.d/tomcat。示例配置:
/opt/tomcat/logs/catalina.out {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
daily:每日切割;rotate 7:保留最近7天的日志;compress:压缩旧日志(节省空间);copytruncate:复制原日志后清空,避免重启Tomcat。若需调整日志详细程度(如减少DEBUG日志以降低磁盘占用),可修改logging.properties文件(位于$CATALINA_HOME/conf目录):
handlers = 1catalina.org.apache.juli.FileHandler, 2localhost.org.apache.juli.FileHandler
.level = WARN # 设置根日志级别为WARN(仅输出警告及以上级别日志)
# 配置catalina日志处理器
1catalina.org.apache.juli.FileHandler.level = WARN
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
# 配置localhost日志处理器
2localhost.org.apache.juli.FileHandler.level = INFO
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.
修改后重启Tomcat使配置生效:
systemctl restart tomcat
常见日志级别从低到高:FINEST<FINER<FINE<CONFIG<INFO<WARNING<SEVERE。<5,7>(@ref)
通过以上方法,可全面监控Tomcat的运行状态(启动/停止、错误异常、请求处理),快速定位并解决问题,保障服务稳定性。