在 Debian 上 Tomcat **日志不写(或写不出来)**通常是下面几类原因导致的,可以按顺序排查。
Tomcat 常见日志有两类:
catalina.sh 启动脚本输出/var/log/tomcat9/catalina.out
catalina.loglocalhost.loghost-manager.logmanager.logDebian 默认用:
systemctl start tomcat9
这种情况下:
catalina.out 可能根本不会更新journalctl 里查看方式:
journalctl -u tomcat9
✅ 这是最常见原因
Debian 的 Tomcat 通常以 tomcat 用户运行:
ps aux | grep tomcat
检查目录权限:
ls -ld /var/log/tomcat9
ls -l /var/log/tomcat9
如果是 root 创建但属主不对:
chown -R tomcat:adm /var/log/tomcat9
chmod 750 /var/log/tomcat9
路径通常是:
/etc/tomcat9/logging.properties
重点检查:
handlers = 1catalina.org.apache.juli.FileHandler, ...
以及:
1catalina.org.apache.juli.FileHandler.directory = /var/log/tomcat9
如果目录不存在或不可写 → 不写日志
检查:
grep CATALINA_OUT /etc/default/tomcat9
或:
echo $CATALINA_OUT
如果看到:
CATALINA_OUT=/dev/null
那就是“故意不写”
看是否真的在跑:
systemctl status tomcat9
如果启动失败:
journalctl 或 catalina.out 第一次启动时报如果是 应用不写日志:
logback.xml / log4j2.xml# 1. 是否在运行
systemctl status tomcat9
# 2. 系统日志
journalctl -u tomcat9 -n 100
# 3. 日志目录
ls -l /var/log/tomcat9
# 4. 配置
cat /etc/tomcat9/logging.properties
# 5. 权限
ps aux | grep java
你可以贴出:
cat /etc/os-release)ls -l /var/log/tomcat9journalctl -u tomcat9 | tail -n 50我可以直接帮你定位是哪一条导致不写日志。