温馨提示×

ubuntu tomcat日志为何不输出

小樊
47
2026-09-06 16:35:01
栏目: 智能运维

在 Ubuntu 上 Tomcat 日志不输出 的原因通常可以分成几类:配置问题、权限问题、服务管理方式问题、应用自身问题。下面按最常见情况逐一说明。


一、你用的是哪种“日志不输出”

先确认现象:

  1. catalina.out 没有内容
  2. logs/ 目录下根本没有日志文件
  3. Tomcat 能启动,但应用不打印日志
  4. systemctl 启动 vs startup.sh 启动表现不同

二、最常见原因与解决办法

1️⃣ 使用 systemd 启动,但日志只进 journald

如果你是用:

systemctl start tomcat

那么:

  • catalina.out 可能不会被写入
  • 日志实际在:
journalctl -u tomcat

✅ 解决:

journalctl -u tomcat -f

如果是 apt 安装的 tomcat(如 tomcat9):

  • 配置文件在:/etc/systemd/system/tomcat.service
  • 默认 StandardOutput=journal

2️⃣ logs 目录权限不足(非常常见)

Tomcat 用户(如 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

3️⃣ CATALINA_OUT 被改或禁用

检查:

grep CATALINA_OUT /opt/tomcat/bin/catalina.sh

或:

echo $CATALINA_OUT

如果设置了:

CATALINA_OUT=/dev/null

✅ 日志当然不会输出


4️⃣ logging.properties 配置错误

文件位置:

conf/logging.properties

常见问题:

  • Handlers 被注释
  • 日志级别被设为 OFF
  • 路径不存在

示例(应存在):

handlers = 1catalina.org.apache.juli.FileHandler
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.level = FINE

5️⃣ 应用使用 log4j / slf4j 但没配置

如果是 应用不输出日志

  • log4j.xml / logback.xml 缺失
  • 日志级别是 ERROR,但你打的是 DEBUG
  • 输出到控制台,但被 systemd 吞了

✅ 建议:

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
  <file>/var/lib/tomcat9/logs/app.log</file>
</appender>

6️⃣ Tomcat 根本没真正启动

检查:

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

四、如果你愿意,我可以更精准帮你

请告诉我:

  1. Ubuntu 版本
  2. Tomcat 版本
  3. 安装方式(apt / 手动)
  4. 启动方式(systemctl / startup.sh)
  5. Tomcat 日志 还是 你的应用日志 不输出

我可以直接给你对应配置文件示例。

0