Ubuntu 上 Tomcat 日志“丢失”或“看不到”,通常不是真的被删了,而是日志去向、权限、配置或系统机制导致的。下面按最常见原因逐一说明:
如果你是用:
systemctl start tomcat
启动 Tomcat,标准输出/错误日志不会写到 catalina.out,而是被 systemd 接管。
journalctl -u tomcat
# 或
journalctl -u tomcat -f
✅ 解决:
journalctl 看日志systemd service 文件中重定向输出Ubuntu 官方 Tomcat 包(tomcat9 / tomcat10)默认不生成 catalina.out
/var/log/tomcat9/
常见文件:
catalina.yyyy-mm-dd.loglocalhost.yyyy-mm-dd.loghost-manager.logmanager.log✅ 解决:
ls -l /var/log/tomcat9/
tail -f /var/log/tomcat9/catalina.*.log
Ubuntu 默认启用 logrotate:
/etc/logrotate.d/tomcat9
可能导致:
catalina.log.1.gz)✅ 检查:
ls -lh /var/log/tomcat9/
Tomcat 通常以 tomcat 用户运行:
ps aux | grep tomcat
如果日志目录权限不对:
/var/log/tomcat9 权限不足
✅ 修复:
sudo chown -R tomcat:adm /var/log/tomcat9
sudo chmod 750 /var/log/tomcat9
如果是下载的 .tar.gz:
bin/ 目录nohup 启动但没重定向,日志可能丢失✅ 正确启动方式:
./bin/catalina.sh run
# 或
nohup ./bin/catalina.sh start > catalina.out 2>&1 &
应用日志可能根本不在 Tomcat 日志目录:
常见位置:
/var/log/yourapp/
./logs/
✅ 查配置:
log4j.propertieslogback.xmldf -h
df -i
# 1. systemd 日志
journalctl -u tomcat -n 100
# 2. tomcat 日志目录
ls -l /var/log/tomcat*/
# 3. 进程用户
ps aux | grep java
# 4. 配置
cat /etc/tomcat9/logging.properties
如果你愿意,可以告诉我:
我可以直接帮你定位是哪一种情况。