在 Ubuntu 上 Tomcat 日志为空,通常不是“没产生日志”,而是路径、权限或配置问题。下面按最常见原因逐条排查,基本都能定位。
Tomcat 在 Ubuntu 下常见日志位置有 两类:
/var/log/tomcat9/
常见文件:
catalina.outlocalhost.logmanager.loghost-manager.log✅ 这是 最容易被忽略的一点:
catalina.out 可能不存在或为空,但其他 .log 有内容
$TOMCAT_HOME/logs/
例如:
/opt/tomcat/logs/
如果 Tomcat 启动失败,日志自然为空。
检查:
systemctl status tomcat9
或
ps -ef | grep tomcat
如果没起来,看:
journalctl -xe
日志目录没有写权限,Tomcat 不会报错,也不会写日志
ls -ld /var/log/tomcat9
sudo chown -R tomcat:tomcat /var/log/tomcat9
sudo chmod -R 755 /var/log/tomcat9
⚠️ 注意:
tomcatroot 或当前用户catalina.out 被 systemd 接管了(Ubuntu 特有)Ubuntu 使用 systemd,stdout 不会写 catalina.out
查看真正日志:
journalctl -u tomcat9
或实时查看:
journalctl -u tomcat9 -f
✅ 这是 为什么 catalina.out 为空的根本原因
logging.properties 被改坏或清空检查:
$TOMCAT_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.
df -h
如果磁盘 100%,Tomcat 无法写日志但不一定报错
Ubuntu 默认会轮转日志:
cat /etc/logrotate.d/tomcat9
可能刚被清空,等一会儿或重启 Tomcat 再观察。
# 1. Tomcat 是否运行
systemctl status tomcat9
# 2. 日志目录权限
ls -ld /var/log/tomcat9
# 3. 看 systemd 日志
journalctl -u tomcat9 -n 100
# 4. 磁盘空间
df -h
# 5. 是否真的没日志
ls -lh /var/log/tomcat9
你可以直接贴出这些信息(不用全贴):
systemctl status tomcat9 输出ls -l /var/log/tomcat9我可以 精确告诉你是哪一条原因 ✅