在 Debian 上 Tomcat 日志为空,通常不是 Tomcat 没运行,而是日志路径、权限或 systemd 重定向的问题。下面按最常见原因给你一个排查清单。
dpkg -l | grep tomcat
常见包名:
tomcat9tomcat10路径特点:
/var/log/tomcat9/
/etc/tomcat9/
/var/lib/tomcat9/
/opt/tomcat/
/usr/local/tomcat/
路径特点:
$TOMCAT_HOME/logs/catalina.out
/var/log/tomcat9/catalina.out 是空的logs/catalina.out 根本不生成Debian 的 Tomcat systemd 服务 默认不写 catalina.out,而是输出到 systemd:
journalctl -u tomcat9
✅ 这是 Debian 官方包的正常行为
systemctl status tomcat9
如果看到类似:
StandardOutput=journal
StandardError=journal
就说明日志在 journald 里。
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
ls -ld /var/log/tomcat9
确保 tomcat 用户可写:
sudo chown -R tomcat:tomcat /var/log/tomcat9
sudo chmod 750 /var/log/tomcat9
或(手动安装):
sudo chown -R tomcat:tomcat /opt/tomcat/logs
ps aux | grep tomcat
systemctl status tomcat9
如果没启动成功:
journalctl -u tomcat9 -xe
cat /etc/tomcat9/logging.properties
确认:
.handlers = 1catalina.org.apache.juli.AsyncFileHandler
WEB-INF/classes/logback.xml# 1. 看 Tomcat 是否运行
systemctl status tomcat9
# 2. 看 systemd 日志
journalctl -u tomcat9 -n 50
# 3. 看 Debian 日志目录
ls -lh /var/log/tomcat9
# 4. 看 Tomcat 进程启动参数
ps -ef | grep tomcat
Debian 上 Tomcat 日志为空,90% 是因为 systemd 把日志重定向到了 journald,而不是 catalina.out 没生成。
如果你愿意,可以告诉我:
我可以给你精确到文件的解决方案。