温馨提示×

tomcat日志过大怎么清理

小樊
48
2026-10-08 12:14:41
栏目: 智能运维

Tomcat 日志过大可以从临时清理、自动滚动、长期策略三个层面来处理。下面按常见场景说明。


一、临时清理(紧急处理)

1. 手动删除旧日志

Tomcat 日志一般在:

$TOMCAT_HOME/logs/

常见文件:

  • catalina.out
  • catalina.yyyy-mm-dd.log
  • localhost.yyyy-mm-dd.log
  • localhost_access_log.yyyy-mm-dd.txt

可直接删除旧日期文件:

cd $TOMCAT_HOME/logs
rm -f catalina.2024-*.log

⚠️ 注意:

  • 不要直接删 catalina.out(正在写入)
  • 清 catalina.out 用清空而不是删除:
> catalina.out

或

cat /dev/null > catalina.out

二、防止日志无限增长(重点)

1. 限制 catalina.out(最常见问题)

方式一:使用 logrotate(Linux 推荐)

新建配置:

/etc/logrotate.d/tomcat

内容示例:

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

说明:

  • copytruncate:不重启 Tomcat 也能切割
  • rotate 7:保留 7 天

方式二:修改 Tomcat 启动脚本(不推荐长期使用)

在 catalina.sh 中用 cronolog 或 logrotate 替代直接写 catalina.out


2. 配置 Tomcat 自带的日志滚动

conf/logging.properties

示例(限制大小 & 天数):

1catalina.org.apache.juli.FileHandler.maxDays = 7
1catalina.org.apache.juli.FileHandler.rotationLimitSize = 10485760
  • maxDays:保留天数
  • rotationLimitSize:单文件大小(字节)

3. 访问日志太大(access log)

conf/server.xml

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

关键参数:

  • rotatable="true":按天滚动
  • maxDays="7":只保留 7 天

三、应用层日志(log4j / logback)

如果是 业务日志太大(不是 Tomcat 本身):

logback 示例

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>logs/app.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>logs/app.%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>7</maxHistory>
    </rollingPolicy>
</appender>

四、推荐组合方案(生产环境)

✅ 最佳实践:

  • catalina.out → logrotate + copytruncate
  • Tomcat 日志 → maxDays
  • 访问日志 → maxDays=7
  • 应用日志 → logback / log4j2 滚动

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

  • Tomcat 版本
  • 操作系统(Linux / Windows)
  • 是哪个日志文件特别大(catalina.out?access log?)

我可以给你一套精确可复制的配置。

0 踩