温馨提示×

debian tomcat日志怎么解读

小樊
44
2026-10-18 23:10:22
栏目: 智能运维

在 Debian 上,Tomcat 的日志主要用于排查启动失败、访问异常、应用报错等问题。下面从日志位置、常见日志文件、日志内容解读、常见错误示例几个方面给你讲清楚。


一、Tomcat 日志在哪(Debian 常见位置)

如果你是用 apt 安装的 Tomcat(如 tomcat9):

/var/lib/tomcat9/logs/
/var/log/tomcat9/

常见日志目录内容:

catalina.out
catalina.YYYY-MM-DD.log
localhost.YYYY-MM-DD.log
localhost_access_log.YYYY-MM-DD.txt
manager.log
host-manager.log

如果你是手动解压的 Tomcat:

$TOMCAT_HOME/logs/

二、各日志文件作用(重点)

1️⃣ catalina.out(最重要)

  • 标准输出 + 错误输出
  • 启动过程、异常堆栈、System.out.println
  • 排查 Tomcat 起不来、项目报错首选

查看:

tail -f /var/log/tomcat9/catalina.out

2️⃣ catalina.YYYY-MM-DD.log

  • Tomcat 自身启动/关闭日志
  • 比 catalina.out 更“规范”

3️⃣ localhost.YYYY-MM-DD.log

  • Web 应用级别异常
  • Servlet、Filter、Listener 初始化错误

4️⃣ localhost_access_log

  • 访问日志(Apache 风格)
  • 谁访问了哪个 URL、状态码、耗时

示例:

127.0.0.1 - - [12/Jan/2026:10:22:01 +0800] "GET /api/test HTTP/1.1" 200 1234

字段含义:

  • IP
  • 时间
  • 请求方法 + URL
  • 状态码(200 / 404 / 500)
  • 返回字节数

三、如何解读关键信息

✅ 正常启动

INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 1234 ms

❌ 端口被占用

java.net.BindException: Address already in use

解决:

netstat -tunlp | grep 8080

❌ Java 版本不兼容

UnsupportedClassVersionError

说明:

  • 编译用 JDK 17
  • 运行用 JDK 8

❌ 项目启动失败

SEVERE [...] Exception starting filter
java.lang.NullPointerException

→ 看 localhost.log


❌ 内存溢出

java.lang.OutOfMemoryError: Java heap space

解决:

/etc/default/tomcat9
JAVA_OPTS="-Xms512M -Xmx1024M"

四、实用排查命令

# 实时看日志
tail -f /var/log/tomcat9/catalina.out

# 看报错
grep -i error /var/log/tomcat9/catalina.out

# 看 500 错误
grep " 500 " /var/log/tomcat9/localhost_access_log.*

五、总结一句话

catalina.out 看“能不能跑”,localhost.log 看“应用错在哪”,access_log 看“谁访问了什么”

如果你愿意,可以把具体报错日志贴出来,我可以直接帮你逐行解读。

0 踩