温馨提示×

Ubuntu Tomcat日志为何为空

小樊
39
2026-07-10 10:13:57
栏目: 智能运维

Ubuntu/Debian 系统上,Tomcat 日志为空(或不更新)是常见问题,通常不是 Tomcat 没在运行,而是日志路径、权限或 systemd 重定向导致的。下面按最常见原因 → 排查方法 → 解决方案来说明。


一、最常见原因汇总

1️⃣ 使用 systemd 启动 Tomcat(日志被重定向)

如果你是通过:

systemctl start tomcat

启动的,那么:

  • catalina.out 可能一直是空的
  • ✅ 日志被 systemd 接管,写入 journald

原因: systemd 默认不会写 catalina.out,而是把 stdout/stderr 重定向到 journal。

✅ 查看方式:

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

2️⃣ 日志目录权限不足(最常见)

Tomcat 进程用户(如 tomcat没有写权限

检查权限:

ls -ld /var/log/tomcat*
ls -l /var/log/tomcat*/catalina.out

修复示例:

sudo chown -R tomcat:tomcat /var/log/tomcat*
sudo chmod -R 755 /var/log/tomcat*

⚠️ 注意:Ubuntu 的 Tomcat 用户通常是 tomcat,不是 root


3️⃣ Tomcat 配置禁用了 catalina.out

检查:

/etc/tomcat9/logging.properties
# 或
/opt/tomcat/conf/logging.properties

重点看:

.handlers = 1catalina.org.apache.juli.AsyncFileHandler

如果 catalina.out 被关闭或改为其他 handler,会导致为空。

✅ 典型修复:

1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.

4️⃣ 日志路径不在你以为的位置

Ubuntu 官方包路径 ≠ 官方 Tomcat 路径

类型 日志路径
apt 安装 /var/log/tomcat9/
手动安装 $CATALINA_HOME/logs/

确认你的 Tomcat 实际目录:

echo $CATALINA_HOME
ps -ef | grep tomcat

5️⃣ Tomcat 根本没启动或 crash 退出

检查:

systemctl status tomcat
# 或
ps -ef | grep java

如果进程马上退出:

  • 日志可能来不及写
  • 错误在 systemd / journal 中

二、快速排查清单 ✅

一步一步来:

✅ 1. 日志到底在哪?

find /var/log /opt /usr/share -name "catalina.out" 2>/dev/null

✅ 2. 是否 systemd 管理?

systemctl status tomcat

如果是:

journalctl -u tomcat -n 100

✅ 3. 权限是否 OK?

sudo -u tomcat touch /var/log/tomcat9/test.log

失败说明权限不对。


✅ 4. 手动启动验证

cd $CATALINA_HOME
./bin/catalina.sh run

如果这时有日志,说明是 systemd 配置问题


三、推荐解决方案(最稳妥)

✅ 方案 1(推荐):让 systemd 写 catalina.out

编辑:

sudo systemctl edit tomcat

加入:

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

重载:

sudo systemctl daemon-reload
sudo systemctl restart tomcat

✅ 方案 2:直接用 journald(现代做法)

接受 systemd 的管理方式,用:

journalctl -u tomcat -f

四、如果你愿意,我可以进一步帮你

你可以直接贴出:

  1. Tomcat 安装方式(apt / 手动)
  2. Ubuntu 版本
  3. systemctl status tomcat
  4. ls -l /var/log/tomcat*

我可以精确告诉你是哪一条原因并给出对应修改命令

0