Cevabım dayanıyor logback
, değil log4j
(karışıklık için üzgünüm ..)
Bu günlük rotasyonunu kullanarak yapabilirsiniz TimeBasedRollingPolicy
.
Örneğin)
<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>
Gece yarısı dönecek ve 30 günden daha eski günlük dosyalarını silecektir.
fileNamePattern: Rollover süresi fileNamePattern değerinden çıkarılır
maxHistory: İsteğe bağlı maxHistory özelliği, eski dosyaları eşzamansız olarak silerek saklanacak maksimum arşiv dosyası sayısını denetler. Örneğin, aylık bir rollover belirtirseniz ve maxHistory değerini 6 olarak ayarlarsanız, 6 aydan eski dosyalar silindiğinde 6 aylık arşiv dosyaları saklanır. Eski arşivlenen günlük dosyaları kaldırıldıkça, günlük dosyası arşivleme amacıyla oluşturulan tüm klasörlerin uygun şekilde kaldırılacağını unutmayın.
TimeBasedRollingPolicy hakkında daha fazla bilgi kontrol edebilirsiniz