温馨提示×

Tomcat日志Ubuntu如何配置

小樊
46
2026-07-10 10:07:10
栏目: 智能运维

在 Ubuntu 上配置 Tomcat 日志,主要涉及 logging.properties(JULI 日志)log4j / logback(应用日志) 以及 systemd / catalina.out 的管理。下面按常见场景给你一个完整说明。


一、Tomcat 自带日志(默认 JULI)

Tomcat 使用 java.util.logging(JULI),配置文件在:

/opt/tomcat/conf/logging.properties

(路径可能不同,如 /usr/share/tomcat9/conf/logging.properties

1️⃣ 常见日志文件位置

日志 说明
catalina.out 标准输出(stdout/stderr)
catalina.YYYY-MM-DD.log Tomcat 运行日志
localhost.YYYY-MM-DD.log 应用日志
manager / host-manager 管理日志

2️⃣ 修改日志级别

编辑:

sudo vim /opt/tomcat/conf/logging.properties

示例:

.level = INFO

org.apache.catalina.level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = WARNING

可选级别:

SEVERE > WARNING > INFO > CONFIG > FINE > FINER > FINEST

3️⃣ 修改日志目录

1catalina.org.apache.juli.AsyncFileHandler.directory = /var/log/tomcat9

确保目录存在并有权限:

sudo mkdir -p /var/log/tomcat9
sudo chown -R tomcat:tomcat /var/log/tomcat9

二、catalina.out 日志(重点)

1️⃣ catalina.out 是什么?

  • Tomcat stdout / stderr
  • 不会自动轮转(容易撑满磁盘)

2️⃣ Ubuntu + systemd 下 catalina.out 在哪?

Tomcat 通过 systemd 启动时:

sudo systemctl status tomcat9

默认 catalina.out 不会生成,日志进入 journald:

journalctl -u tomcat9 -f

3️⃣ 生成 catalina.out(推荐)

编辑 systemd 服务:

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

三、日志自动轮转(非常重要)

1️⃣ 使用 logrotate

创建配置:

sudo vim /etc/logrotate.d/tomcat9

示例:

/var/log/tomcat9/catalina.out {
    daily
    rotate 7
    missingok
    notifempty
    compress
    copytruncate
}

测试:

sudo logrotate -d /etc/logrotate.d/tomcat9

四、使用 Log4j / Logback(应用日志)

1️⃣ Log4j2 示例(推荐)

依赖:

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.23.1</version>
</dependency>

log4j2.xml

<Configuration status="INFO">
    <Appenders>
        <RollingFile name="File" fileName="/var/log/tomcat9/app.log"
                     filePattern="/var/log/tomcat9/app-%d{yyyy-MM-dd}.log">
            <PatternLayout pattern="%d %p %c - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
            </Policies>
        </RollingFile>
    </Appenders>
    <Loggers>
        <Root level="info">
            <AppenderRef ref="File"/>
        </Root>
    </Loggers>
</Configuration>

五、常见问题排查

1️⃣ 日志不输出?

ls -ld /var/log/tomcat9

权限错误常见:

sudo chown -R tomcat:tomcat /var/log/tomcat9

2️⃣ 磁盘被 catalina.out 占满?

du -sh /var/log/tomcat9/*

✅ 一定要配置 logrotate


六、快速总结

Tomcat 日志配置核心

  • conf/logging.properties → Tomcat 自身日志
  • systemd → catalina.out
  • logrotate → 日志轮转
  • log4j/logback → 应用日志

如果你愿意,可以告诉我:

  • Tomcat 版本(8 / 9 / 10)
  • Ubuntu 版本
  • 是否使用 systemd

我可以给你 完全贴合你环境的配置示例

0