1. 定位Tomcat日志文件
在Debian系统中,Tomcat的日志文件默认存储在/var/log/tomcatX
目录下(X
为Tomcat版本号,如tomcat9
、tomcat10
)。核心日志文件为**catalina.out
**,它整合了Tomcat启动、运行及错误信息;此外还有localhost.log
(本地主机请求日志)、manager.log
(Tomcat Manager应用日志)等辅助日志。
2. 使用命令行工具查看错误堆栈
tail -f
命令实时监控catalina.out
的新增内容,快速捕捉实时错误(按Ctrl+C
停止):sudo tail -f /var/log/tomcatX/catalina.out
grep
命令搜索“Exception”“Error”或“Stack trace”等关键字,提取包含错误堆栈的行(-i
表示忽略大小写):sudo grep -i "exception" /var/log/tomcatX/catalina.out
sudo grep -i "stack trace" /var/log/tomcatX/catalina.out
less
命令分页浏览(按空格
翻页,/keyword
搜索):sudo less /var/log/tomcatX/catalina.out
3. 定位并分析错误堆栈
错误堆栈通常紧跟在错误级别标识(如SEVERE
、ERROR
)之后,格式为:
SEVERE: [错误描述]
java.lang.ExceptionType: [具体异常信息]
at com.example.ClassName.methodName(ClassName.java:行号)
at com.example.AnotherClass.methodName(AnotherClass.java:行号)
...
通过堆栈信息可快速定位异常类型(如NullPointerException
、ServletException
)、触发类及方法(如com.example.MyServlet.doGet
)及代码行号(如第30行),从而针对性修复问题。
4. 调整日志级别增强堆栈可见性
若默认日志级别(INFO
)未显示足够细节,可通过修改logging.properties
文件(位于$CATALINA_BASE/conf
目录)提高日志级别,强制记录更详细的错误堆栈:
SEVERE
(仅记录严重错误)或WARNING
(记录警告及以上错误):org.apache.catalina.core.ContainerBase.[Catalina].level = SEVERE
org.apache.catalina.core.ContainerBase.[Catalina].handlers = 2localhost.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler
org.apache.catalina
)的详细日志,可单独调整其级别为FINE
(详细调试信息):org.apache.catalina.level = FINE
sudo systemctl restart tomcatX
5. 日志轮转管理(避免文件过大)
为防止catalina.out
文件无限增长占用磁盘空间,需配置logrotate
工具定期归档旧日志。编辑/etc/logrotate.d/tomcat
文件,添加以下配置(每日轮转、保留7天、压缩旧日志):
/var/log/tomcatX/catalina.out {
daily
rotate 7
compress
missingok
notifempty
copytruncate
dateext
}
此配置会自动将catalina.out
重命名为catalina.out-20250927.gz
(日期格式),并创建新的catalina.out
文件,保留最近7天的压缩日志。