温馨提示×

为什么ubuntu tomcat日志丢失

小樊
51
2026-10-06 13:14:43
栏目: 智能运维

Ubuntu 上 Tomcat 日志“丢失”或“看不到”,通常不是真的被删了,而是日志去向、权限、配置或系统机制导致的。下面按最常见原因逐一说明:


1️⃣ 使用了 systemd(最常见原因)

如果你是用:

systemctl start tomcat

启动 Tomcat,标准输出/错误日志不会写到 catalina.out,而是被 systemd 接管。

日志位置

journalctl -u tomcat
# 或
journalctl -u tomcat -f

✅ 解决:

  • 用 journalctl 看日志
  • 或在 systemd service 文件中重定向输出

2️⃣ catalina.out 不存在或为空

Ubuntu 官方 Tomcat 包(tomcat9 / tomcat10)默认不生成 catalina.out

实际日志位置

/var/log/tomcat9/

常见文件:

  • catalina.yyyy-mm-dd.log
  • localhost.yyyy-mm-dd.log
  • host-manager.log
  • manager.log

✅ 解决:

ls -l /var/log/tomcat9/
tail -f /var/log/tomcat9/catalina.*.log

3️⃣ 日志被 logrotate 切割/删除

Ubuntu 默认启用 logrotate:

/etc/logrotate.d/tomcat9

可能导致:

  • 日志被压缩(catalina.log.1.gz)
  • 超出天数被删除

✅ 检查:

ls -lh /var/log/tomcat9/

4️⃣ 权限问题(看不到或写不进去)

Tomcat 通常以 tomcat 用户运行:

ps aux | grep tomcat

如果日志目录权限不对:

/var/log/tomcat9 权限不足

✅ 修复:

sudo chown -R tomcat:adm /var/log/tomcat9
sudo chmod 750 /var/log/tomcat9

5️⃣ 你用的是自己解压的 Tomcat(非 apt 安装)

如果是下载的 .tar.gz:

  • 默认:catalina.out 在 bin/ 目录
  • 若用 nohup 启动但没重定向,日志可能丢失

✅ 正确启动方式:

./bin/catalina.sh run
# 或
nohup ./bin/catalina.sh start > catalina.out 2>&1 &

6️⃣ 应用日志用的是 log4j / logback

应用日志可能根本不在 Tomcat 日志目录:

常见位置:

/var/log/yourapp/
./logs/

✅ 查配置:

  • log4j.properties
  • logback.xml

7️⃣ 磁盘满 / inode 用完

df -h
df -i

快速排查清单 ✅

# 1. systemd 日志
journalctl -u tomcat -n 100

# 2. tomcat 日志目录
ls -l /var/log/tomcat*/

# 3. 进程用户
ps aux | grep java

# 4. 配置
cat /etc/tomcat9/logging.properties

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • Tomcat 安装方式(apt / 手动解压)
  • 启动方式(systemctl / startup.sh)

我可以直接帮你定位是哪一种情况。

0 踩