Linux下Java日志轮转策略主要有以下两种实现方式:
logrotate
配置日志轮转,通过编辑配置文件(如/etc/logrotate.d/java
)设置轮转规则,例如按天轮转、保留7天日志、压缩旧日志等。/path/to/java/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
create 0644 root root
}
logback.xml
):<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>30</maxHistory> <!-- 保留30天日志 -->
</rollingPolicy>
</appender>
log4j2.xml
):<RollingFile name="RollingFile" fileName="logs/app.log" filePattern="logs/app-%d{yyyy-MM-dd}.log">
<Policies>
<TimeBasedTriggeringPolicy interval="1"/> <!-- 每天滚动 -->
</Policies>
<DefaultRolloverStrategy max="30"/> <!-- 保留30个文件 -->
</RollingFile>