centos

CentOS Java日志轮转策略是什么

小樊
61
2025-08-10 16:28:40
栏目: 编程语言

CentOS中Java日志轮转主要有以下两种策略,具体配置方式如下:

一、使用日志框架(推荐)

1. Log4j/Log4j2

2. Logback

logback.xml中通过TimeBasedRollingPolicySizeAndTimeBasedRollingPolicy配置,例如:

<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>logs/app-%d{yyyy-MM-dd}.log</fileNamePattern>
    <maxHistory>30</maxHistory> <!-- 保留30天日志 -->
</rollingPolicy>

或按大小轮转:

<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
    <fileNamePattern>logs/app-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
    <maxFileSize>50MB</maxFileSize>
    <maxHistory>30</maxHistory>
</rollingPolicy>

二、使用系统工具(logrotate)

  1. 安装logrotate:sudo yum install logrotate
  2. 创建配置文件(如/etc/logrotate.d/java-app):
/var/log/java-app/*.log {
    daily       # 每天轮转
    rotate 7    # 保留7天日志
    compress    # 压缩旧日志
    missingok   # 文件不存在时不报错
    notifempty  # 空文件不轮转
    create 0640 root root
    postrotate
        # 可选:重启Java服务或发送信号通知重新打开日志
        # /bin/kill -USR1 $(cat /var/run/java-app.pid)
    endscript
}
  1. 测试配置:sudo logrotate -d /etc/logrotate.d/java-app

关键参数说明

优先使用日志框架(如Logback/Log4j2)实现,灵活性更高;系统级工具(logrotate)适合统一管理多服务日志。

0
看了该问题的人还看了