温馨提示×

ubuntu tomcat日志怎么优化

小樊
36
2026-09-15 18:05:25
栏目: 智能运维

在 Ubuntu 上优化 Tomcat 日志,一般从日志级别、日志格式、日志滚动、磁盘与性能、集中管理几个方面入手。下面按实用顺序说明。


一、调整日志级别(最重要)

1. 修改 conf/logging.properties

Tomcat 默认使用 JULI(java.util.logging)

常见级别:

  • SEVERE(高)
  • WARNING
  • INFO(默认)
  • FINE / FINER / FINEST(调试用)

示例(减少无用日志):

.level = INFO
org.apache.catalina.level = WARNING
org.apache.coyote.level = WARNING

生产环境不建议开 FINE 或以上


二、优化 catalina.out(最容易爆盘)

1. 使用 logrotate(推荐)

Ubuntu 自带 logrotate

创建配置:

sudo vim /etc/logrotate.d/tomcat

示例:

/opt/tomcat/logs/catalina.out {
    daily
    rotate 7
    missingok
    notifempty
    compress
    copytruncate
}

copytruncate 避免 Tomcat 重启

测试:

sudo logrotate -d /etc/logrotate.d/tomcat

三、关闭或重定向 System.out

catalina.out 主要来自:

  • System.out.println
  • 框架默认日志

建议:

  • 不要直接 System.out
  • 用 SLF4J / Logback / Log4j2

四、用 Log4j2 / Logback 替代 JULI(推荐)

使用 Log4j2(性能更好)

  • 异步日志
  • 滚动策略更灵活

示例(log4j2.xml):

<RollingFile name="File"
             fileName="logs/app.log"
             filePattern="logs/app-%d{MM-dd}.log.gz">
    <PatternLayout pattern="%d %p %c{1.} %m%n"/>
    <Policies>
        <TimeBasedTriggeringPolicy/>
    </Policies>
</RollingFile>

五、Access Log(访问日志)优化

1. 控制是否开启

conf/server.xml

<Valve className="org.apache.catalina.valves.AccessLogValve"
       directory="logs"
       prefix="access_log"
       suffix=".log"
       pattern="%h %l %u %t "%r" %s %b"
       rotatable="true"
       maxDays="7"/>

优化建议:

  • maxDays="7" 自动清理
  • 不需要就注释掉 Valve

六、磁盘与性能建议

  • 日志单独挂载磁盘
  • 使用 ext4 + noatime
  • SSD 更好
  • 异步日志(Log4j2 AsyncAppender)

七、集中日志(进阶)

  • ELK / Graylog
  • Fluent Bit
  • Loki + Promtail

八、快速检查清单

✅ logging.properties 级别合理
✅ catalina.out 有 logrotate
✅ 无 System.out
✅ access log 有保留策略
✅ 使用异步日志


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

  • Tomcat 版本
  • Ubuntu 版本
  • 是否用 Spring Boot
  • 日志主要问题(太大 / 太慢 / 太杂)

我可以给你针对性配置

0