温馨提示×

Ubuntu Tomcat日志为何丢失

小樊
36
2026-07-10 10:45:07
栏目: 智能运维

在 Ubuntu 上 Tomcat 日志“丢失”通常不是真的被删除了,而是位置、配置或轮转方式发生了变化。下面按最常见原因 → 排查步骤给你一个系统性的说明。


一、最常见的 6 个原因

1️⃣ 日志目录搞错了(最常见)

Tomcat 不同版本日志位置不同

Tomcat 版本 日志目录
Tomcat 8/9 /var/log/tomcat9/
Tomcat 10 /var/log/tomcat10/
手动安装 tomcat/logs/

✅ 检查:

ls -lh /var/log/tomcat*/
ls -lh /opt/tomcat/logs/

2️⃣ systemd 接管了输出(catalina.out 消失)

Ubuntu 使用 systemd 管理 Tomcat:

  • catalina.out 可能不再生成
  • 标准输出被重定向到 journald

查看方式:

journalctl -u tomcat9 --since "1 hour ago"

或:

journalctl -u tomcat9 -f

✅ 这是正常现象,不是日志丢失


3️⃣ logging.properties 被修改

Tomcat 使用:

conf/logging.properties

如果配置被改坏,日志可能:

  • 不写文件
  • 写到别的地方
  • 级别被调高(INFO 不显示)

重点检查:

1catalina.org.apache.juli.AsyncFileHandler.directory

4️⃣ 日志被 logrotate 轮转或清理

Ubuntu 默认会轮转 Tomcat 日志:

/etc/logrotate.d/tomcat9

常见问题:

  • 日志被压缩成 .gz
  • 超过 N 天被删除

查看:

ls /var/log/tomcat9/*.gz

5️⃣ 权限问题(Tomcat 无法写日志)

如果 Tomcat 用户无权写目录:

ps aux | grep tomcat

通常用户是:

tomcat
tomcat9

修复权限:

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

6️⃣ 应用日志被 Logback / Log4j2 接管

如果你用的是 Spring Boot / 自定义应用:

  • Tomcat 日志正常
  • 应用日志写入别的地方

常见位置:

/var/log/your-app/
./logs/

检查:

find / -name "*.log" 2>/dev/null | grep -v proc

二、快速排查清单(推荐顺序)

# 1. 确认 Tomcat 是否运行
systemctl status tomcat9

# 2. 查看 systemd 日志
journalctl -u tomcat9 -n 100

# 3. 查看 Tomcat 日志目录
ls -lh /var/log/tomcat*/

# 4. 查看是否被轮转
ls -lh /var/log/tomcat*.gz

# 5. 检查配置
cat /etc/tomcat9/logging.properties

三、如何“找回”catalina.out(如果你真的需要)

方法 1:修改 systemd 输出到文件

编辑:

sudo systemctl edit tomcat9

添加:

[Service]
StandardOutput=append:/var/log/tomcat9/catalina.out
StandardError=append:/var/log/tomcat9/catalina.out

然后:

sudo systemctl daemon-reload
sudo systemctl restart tomcat9

四、总结一句话

Ubuntu 上 Tomcat 日志“丢失”,90% 是因为 systemd 接管了输出,或日志目录/轮转配置变化,而不是真的被删除。

如果你愿意,可以把下面信息发我,我可以精准定位

  • Tomcat 版本
  • 是否 Ubuntu 20.04 / 22.04
  • 完全没日志,还是 某一类日志没了
  • 是否 Spring Boot 项目

0