在 Ubuntu 上 Tomcat 日志为空,通常不是“没产生日志”,而是路径、权限或配置问题。下面按最常见原因逐一排查,基本都能定位到。
Tomcat 常见日志有两类:
/var/log/tomcat9/catalina.out
$CATALINA_HOME/logs/catalina.out
✅ 查看 systemd 日志:
journalctl -u tomcat9
# 或
journalctl -u tomcat
日志为空,但进程不存在。
检查:
systemctl status tomcat9
ps -ef | grep tomcat
如果没启动,看启动失败原因:
journalctl -xe
Ubuntu 下 tomcat 以 tomcat 用户运行,但 logs 目录属于 root。
检查权限:
ls -ld /var/log/tomcat9
修复(示例):
sudo chown -R tomcat:tomcat /var/log/tomcat9
sudo chmod 755 /var/log/tomcat9
如果是手动安装:
chown -R tomcat:tomcat /opt/tomcat/logs
Tomcat 使用 logging.properties:
/etc/tomcat9/logging.properties
# 或
$CATALINA_HOME/conf/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.
如果文件被清空,日志会直接消失。
Ubuntu 使用 systemd,stdout 不再写 catalina.out。
现象:
catalina.out 为空journalctl 里能看到日志✅ 想恢复 catalina.out: 编辑:
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
日志写不进去,但进程不报错。
检查:
df -h
不是 Tomcat 的问题,而是你的 web 应用没配置日志。
log4j / logback检查应用日志配置(如 logback.xml / log4j2.xml)
依次执行:
systemctl status tomcat9
journalctl -u tomcat9 --no-pager -n 50
ls -l /var/log/tomcat9
df -h
Ubuntu 上 Tomcat 日志为空,90% 是:systemd 接管日志 + 权限问题 + logging.properties 配置异常。
如果你愿意,可以把下面信息发我,我可以精确判断:
ls -l /var/log/tomcat9 输出我可以直接告诉你该改哪一行。