温馨提示×

centos java日志怎么清理

小樊
60
2026-09-03 01:21:24
栏目: 编程语言

在 CentOS 上清理 Java 应用日志,常见做法分为手动清理、日志轮转和应用自身配置三类。下面按场景给你讲清楚。


一、手动清理(临时处理)

1. 找到 Java 日志位置

常见位置:

/var/log/
/opt/xxx/logs/
/home/xxx/logs/

查找大日志文件:

find / -name "*.log" -size +100M

2. 清空日志(不删文件,推荐)

> /path/to/app.log

或

truncate -s 0 /path/to/app.log

⚠️ 不要直接 rm,否则正在运行的 Java 进程可能仍占用磁盘。

3. 删除旧日志

rm -f /path/to/app.log.2023-01-01

二、使用 logrotate(推荐,长期方案)

CentOS 自带 logrotate

示例:为 Java 日志配置

vim /etc/logrotate.d/myjava

内容示例:

/opt/app/logs/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    copytruncate
}

说明:

  • copytruncate:适合不能重启的 Java 程序
  • compress:压缩旧日志
  • rotate 7:保留 7 天

测试:

logrotate -d /etc/logrotate.d/myjava

强制执行:

logrotate -f /etc/logrotate.d/myjava

三、Java 框架自带日志管理

1. Logback

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

2. Log4j2

< RollingFile name="RollingFile" fileName="logs/app.log"
 filePattern="logs/app-%d{yyyy-MM-dd}.log.gz">
    <Policies>
        <TimeBasedTriggeringPolicy />
    </Policies>
    <DefaultRolloverStrategy max="7"/>
</RollingFile>

四、磁盘满了紧急处理

df -h
du -sh /var/log/*

找到大文件后:

> 大文件.log

五、总结建议

场景 建议
临时清理 > logfile
长期维护 logrotate
Spring/Java 项目 用 Logback / Log4j2
不能重启服务 copytruncate

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

  • Java 应用类型(Spring / Tomcat / 自研)
  • 日志路径
  • 是否可重启

我可以帮你写一份专属 logrotate 配置。

0 踩