温馨提示×

Debian下Tomcat无日志原因

小樊
46
2026-07-13 09:37:16
栏目: 智能运维

在 Debian 下 Tomcat 没有日志(catalina.out / localhost 日志等),通常不是 Tomcat 本身坏了,而是 日志配置、权限、systemd 或目录不存在 造成的。下面按最常见原因逐一排查。


一、最常见原因汇总(先看这个)

原因 说明
日志目录不存在 logs/ 目录被删或不存在
权限不足 Tomcat 用户无法写日志
systemd 重定向 输出被 systemd 接管
logging.properties 被改 JULI 日志未启用
使用 apt 安装 日志路径和手动安装不同
磁盘满 / inode 满 无法创建新文件
Tomcat 未真正启动 启动失败所以没日志

二、Debian 下 Tomcat 日志路径差异(很重要)

1️⃣ apt 安装的 Tomcat(最常见)

# 日志位置
/var/log/tomcat9/

而不是:

/usr/share/tomcat9/logs/

apt 安装时 logs 目录是软链接

ls -l /usr/share/tomcat9/logs

通常指向:

/var/log/tomcat9

三、检查日志目录是否存在 & 权限

1️⃣ 检查日志目录

ls -ld /var/log/tomcat9
ls -ld /usr/share/tomcat9/logs

如果不存在:

sudo mkdir -p /var/log/tomcat9

2️⃣ 权限问题(非常常见)

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

Debian 默认 Tomcat 用户是 tomcat


四、systemd 导致看不到 catalina.out(重点)

Debian 使用 systemd 启动 Tomcat

systemctl status tomcat9

catalina.out 默认不会生成 因为输出被 systemd 接管。

查看日志方式

journalctl -u tomcat9

或实时查看:

journalctl -u tomcat9 -f

如果你想恢复 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

五、检查 logging.properties

/etc/tomcat9/logging.properties

确保有以下内容:

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

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

如果目录被改成不存在路径,日志会直接消失。


六、磁盘 / inode 问题

磁盘满

df -h

inode 满(很隐蔽)

df -i

如果满了:

sudo apt clean
sudo journalctl --vacuum-size=100M

七、Tomcat 是否真的启动了?

ps aux | grep tomcat

或:

systemctl status tomcat9

如果启动失败,通常:

  • 端口被占用
  • JAVA_HOME 错误
  • web.xml 错误

查看 systemd 报错:

journalctl -xe

八、快速自检清单(一步步来)

# 1. 日志目录
ls /var/log/tomcat9

# 2. 权限
ls -ld /var/log/tomcat9

# 3. systemd 日志
journalctl -u tomcat9 -n 50

# 4. 磁盘
df -h && df -i

# 5. 配置文件
cat /etc/tomcat9/logging.properties

九、总结一句话

Debian 下 Tomcat 无日志,90% 是 systemd 接管输出 + 日志目录权限问题。

如果你愿意,可以把下面信息贴出来,我可以直接帮你定位:

  • Debian 版本
  • Tomcat 安装方式(apt / 手动)
  • systemctl status tomcat9
  • /var/log/tomcat9 目录内容

0