在 Ubuntu 上 Tomcat 日志不输出 的原因通常可以分成几类:配置问题、权限问题、服务管理方式问题、应用自身问题。下面按最常见情况逐一说明。
先确认现象:
如果你是用:
systemctl start tomcat
那么:
catalina.out 可能不会被写入journalctl -u tomcat
✅ 解决:
journalctl -u tomcat -f
如果是 apt 安装的 tomcat(如 tomcat9):
/etc/systemd/system/tomcat.serviceStandardOutput=journalTomcat 用户(如 tomcat)没有写权限:
ls -ld /var/lib/tomcat9/logs
✅ 解决:
sudo chown -R tomcat:tomcat /var/lib/tomcat9/logs
sudo chmod 755 /var/lib/tomcat9/logs
如果是手动安装:
chown -R tomcat:tomcat /opt/tomcat/logs
检查:
grep CATALINA_OUT /opt/tomcat/bin/catalina.sh
或:
echo $CATALINA_OUT
如果设置了:
CATALINA_OUT=/dev/null
✅ 日志当然不会输出
文件位置:
conf/logging.properties
常见问题:
示例(应存在):
handlers = 1catalina.org.apache.juli.FileHandler
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.level = FINE
如果是 应用不输出日志:
✅ 建议:
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>/var/lib/tomcat9/logs/app.log</file>
</appender>
检查:
ps aux | grep tomcat
netstat -tlnp | grep 8080
如果没进程:
systemctl status tomcat
journalctl -xe
# 1. 看 systemd 日志
journalctl -u tomcat -f
# 2. 看 catalina.out
tail -f /opt/tomcat/logs/catalina.out
# 3. 看 logs 目录
ls -l /opt/tomcat/logs
# 4. 看权限
ps aux | grep tomcat
# 5. 看配置
cat conf/logging.properties
请告诉我:
我可以直接给你对应配置文件示例。