在 Ubuntu 上 Tomcat 日志不写(没有任何日志或日志停止更新),常见原因和排查方法如下,按出现频率从高到低说明:
Tomcat 以 tomcat 用户运行,但对 logs 目录没有写权限。
排查
ls -ld /var/lib/tomcat9/logs
ls -l /var/lib/tomcat9/logs
修复
sudo chown -R tomcat:tomcat /var/lib/tomcat9/logs
sudo chmod 755 /var/lib/tomcat9/logs
Ubuntu 上 Tomcat 通常通过 systemd 启动,catalina.out 不会写文件。
现象
/var/lib/tomcat9/logs/ 没有 catalina.outjournalctl -u tomcat9
说明 这是 Ubuntu 的默认行为,不是错误。
Tomcat 使用 conf/logging.properties。
检查
cat /var/lib/tomcat9/conf/logging.properties
重点看:
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
如果目录被改成不存在路径,日志不会写。
如果 Tomcat 没起来,自然没日志。
检查
systemctl status tomcat9
journalctl -u tomcat9 -n 50
df -h
磁盘 100% 时 Tomcat 无法写日志。
df -i
Ubuntu 默认 logrotate 会:
copytruncate
如果配置错误,可能导致日志停止。
检查
cat /etc/logrotate.d/tomcat9
这些框架 不会写 catalina.out,只写自己配置的日志文件。
# 1. Tomcat 是否在跑
systemctl status tomcat9
# 2. 看 journal 日志
journalctl -u tomcat9
# 3. 看 logs 目录
ls -l /var/lib/tomcat9/logs
# 4. 权限
ps aux | grep tomcat
你可以贴出:
systemctl status tomcat9ls -l /var/lib/tomcat9/logs我可以帮你精确定位是哪一种原因。