温馨提示×

Debian Tomcat如何配置日志

小樊
51
2026-08-31 07:27:41
栏目: 智能运维

在 Debian 上配置 Tomcat 日志,主要涉及 Tomcat 自带日志(JULI)、Log4j / Logback 以及 systemd / journald 几个方面。下面按常见场景一步步说明。


一、Tomcat 默认日志机制(JULI)

Debian 下通过 apt 安装的 Tomcat(如 Tomcat 9/10):

  • 配置文件目录:
    /etc/tomcat9/
    
  • 日志目录:
    /var/log/tomcat9/
    
  • 主配置文件:
    /etc/tomcat9/logging.properties
    

1️⃣ logging.properties 说明

核心配置:

handlers = 1catalina.org.apache.juli.AsyncFileHandler, \
           2localhost.org.apache.juli.AsyncFileHandler, \
           3manager.org.apache.juli.AsyncFileHandler, \
           java.util.logging.ConsoleHandler

不同 Handler 对应不同日志文件:

Handler 日志文件
catalina catalina.%g.log
localhost localhost.%g.log
manager manager.%g.log

2️⃣ 修改日志级别

示例:将 Catalina 日志改为 DEBUG

1catalina.org.apache.juli.AsyncFileHandler.level = FINE

常用级别:

  • SEVERE(严重)
  • WARNING
  • INFO(默认)
  • FINE / FINER / FINEST(调试)

3️⃣ 修改日志格式与路径

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

二、Access Log(访问日志,类似 Nginx)

Tomcat 的 AccessLogValve 用于记录 HTTP 请求。

1️⃣ 配置文件

/etc/tomcat9/server.xml

2️⃣ 启用 AccessLog

在 <Host> 中添加:

<Valve className="org.apache.catalina.valves.AccessLogValve"
       directory="logs"
       prefix="localhost_access_log"
       suffix=".txt"
       pattern="%h %l %u %t "%r" %s %b" />

常用 pattern:

模式 说明
common %h %l %u %t "%r" %s %b
combined 包含 Referer / User-Agent

三、使用 Log4j2 / Logback(推荐生产环境)

Tomcat 默认日志不适合复杂系统,生产环境通常切换为 Log4j2 或 Logback。

1️⃣ 使用 Logback(常见)

添加依赖

<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
  <version>1.4.x</version>
</dependency>

logback.xml 示例

<configuration>
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>/var/log/tomcat9/app.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <fileNamePattern>/var/log/tomcat9/app.%d{yyyy-MM-dd}.log</fileNamePattern>
      <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
      <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="INFO">
    <appender-ref ref="FILE"/>
  </root>
</configuration>

四、Debian systemd 日志(APT 安装)

Debian 使用 systemd 管理 Tomcat:

systemctl status tomcat9
journalctl -u tomcat9 -f

修改 systemd 日志级别

systemctl edit tomcat9

添加:

[Service]
StandardOutput=journal
StandardError=journal

五、日志轮转(logrotate)

Debian 默认已配置:

/etc/logrotate.d/tomcat9

常见配置:

/var/log/tomcat9/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
}

六、常见问题排查

1️⃣ 日志不输出?

  • 检查目录权限:
    chown -R tomcat9:tomcat9 /var/log/tomcat9
    

2️⃣ 中文乱码?

在 catalina.sh 或 systemd 中设置:

-Dfile.encoding=UTF-8

七、推荐配置总结 ✅

  • 开发环境:默认 JULI + INFO
  • 生产环境:
    • 关闭 console 日志
    • 使用 Logback
    • 开启 AccessLog
    • 配置 logrotate

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

  • ✅ Tomcat 版本(8 / 9 / 10)
  • ✅ Debian 版本
  • ✅ 是否使用 Spring Boot / 普通 Web 应用

我可以给你一份 完整可用的配置文件示例。

0 踩