Jawaban saya berdasarkan logback
, bukan log4j
(maaf atas kebingungan ..)
Anda dapat mencapai rotasi log itu dengan menggunakan TimeBasedRollingPolicy
.
sebagai contoh)
<appender name="SYSTEMLOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>./logs/system.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>./logs/system.log.%d{yyyy-MM-dd}</fileNamePattern>
<!-- keep last 30 days of logs -->
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %msg %n</Pattern>
</encoder>
</appender>
Ini akan diputar pada tengah malam, dan akan menghapus file log yang lebih lama dari 30 hari.
fileNamePattern: Periode rollover disimpulkan dari nilai fileNamePattern
maxHistory: Properti maxHistory opsional mengontrol jumlah maksimum file arsip yang akan disimpan, secara tidak sinkron menghapus file yang lebih lama. Misalnya, jika Anda menetapkan rollover bulanan, dan mengatur maxHistory ke 6, maka file arsip senilai 6 bulan akan disimpan dengan file yang lebih lama dari 6 bulan dihapus. Catatan sebagai file log arsip lama dihapus, folder apa pun yang dibuat untuk tujuan pengarsipan file log akan dihapus sebagaimana mestinya.
Anda dapat memeriksa informasi lebih lanjut tentang TimeBasedRollingPolicy