在 Ubuntu 上解读 Tomcat 日志,核心就是搞清楚 日志在哪、日志分哪几类、怎么看、怎么定位问题。下面按实用角度给你一个完整说明。
如果你是用 apt 安装的 Tomcat(Ubuntu 常见方式):
/var/log/tomcat9/
如果是 手动解压的 Tomcat(如 /opt/tomcat):
/opt/tomcat/logs/
常见日志文件包括:
| 文件名 | 作用 |
|---|---|
catalina.out |
最重要,标准输出 + 错误日志 |
catalina.yyyy-mm-dd.log |
按日期的 Tomcat 启动/运行日志 |
localhost.yyyy-mm-dd.log |
应用级异常 |
manager.yyyy-mm-dd.log |
manager 应用日志 |
host-manager.yyyy-mm-dd.log |
host-manager 日志 |
localhost_access_log.yyyy-mm-dd.txt |
访问日志(类似 Nginx access.log) |
tail -f /var/log/tomcat9/catalina.out
适合:
tail -n 100 /var/log/tomcat9/catalina.out
grep -i error /var/log/tomcat9/catalina.out
grep -i exception /var/log/tomcat9/catalina.out
只看最近 200 行中是否有异常:
tail -n 200 /var/log/tomcat9/catalina.out | grep Exception
重点看:
Caused by:
java.lang.ExceptionInInitializerError
java.lang.ClassNotFoundException
java.net.BindException: Address already in use
常见原因:
✅ 先看访问日志
/var/log/tomcat9/localhost_access_log.2026-01-21.txt
示例:
127.0.0.1 - - [21/Jan/2026:10:01:01 +0800] "GET /demo HTTP/1.1" 404 1021
| 字段 | 含义 |
|---|---|
| GET /demo | 请求路径 |
| 404 | 状态码 |
| 1021 | 返回字节数 |
✅ 再看应用异常
localhost.yyyy-mm-dd.log
典型日志:
java.lang.OutOfMemoryError: Java heap space
解决方向:
setenv.sh / catalina.sh-Xms / -Xmx日志配置文件位置(apt 安装):
/etc/tomcat9/logging.properties
常见级别(从低到高):
FINEST < FINE < INFO < WARNING < SEVERE
临时调试建议:
org.apache.catalina.level = FINE
⚠️ 生产环境不建议长期开 DEBUG
Tomcat 启停异常也可以看:
journalctl -u tomcat9
或:
systemctl status tomcat9
✅ Tomcat 起不来
systemctl status tomcat9journalctl -u tomcat9catalina.out✅ 接口报错
localhost_access_loglocalhost.*.logcatalina.out✅ 性能问题
如果你愿意,可以直接把 一段 catalina.out 日志贴出来,我可以帮你逐行解读,指出问题在哪、怎么改。