2009-06-26 14 views
50

Eski dönen günlük dosyalarını silmek için log4j'yi nasıl alabilirim? Otomatik işler (UNIX için cron ve Windows için zamanlanmış görevler) kurabildiğimi biliyorum, ancak bu platformun çapraz olmasını istiyorum ve uygulamanızın bir parçası olarak uygulamanızın bir parçası olarak log yapılandırmasında istiyorum. belirli kodlama dilleri. Uygulamamız OS komut dosyası dillerinde yazılmamıştır ve bunların bu bölümünü yapmak istemiyorum.Eski dönen günlük dosyalarını silmek için log4j'yi nasıl alabilirim?

cevap

44

RollingFileAppender bunu yapar. Sadece maxBackupIndex'i yedekleme dosyasının en yüksek değerine ayarlamanız gerekir.

+42

DailyRollingFileAppender ile bunu yapmak için bir yolu var mı? –

+3

Hayır, standart olanla değil - aşağıdaki kullanıcı3195649'dan gelen cevaba bakınız. Log4j için Apache Ekstralar inanıyorum benzer bir şey var. –

+0

Bu, daha önce arşivlenen eski günlük dosyalarını (* .log.2016-09-12) DailyRollingFileAppender tarafından kaldırılacak mı? – mvdb

37

Günlükler bir nedenle döndürür, böylece yalnızca çok fazla günlük dosyası bulundurursunuz. log4j.xml olarak size düğüme bu ekleyebilirsiniz:

<param name="MaxBackupIndex" value="20"/> 

değeri yalnızca yaklaşık 20 döndürülmüş günlük dosyalarını tutmak için log4j.xml söyler. İsterseniz, hatta bunu 5 ile sınırlayabilirsiniz. 1. Uygulamanız bu kadar çok veriyi kaydetmiyorsa ve son 8 ay boyunca 20 günlük dosya kaydettiyseniz, ancak yalnızca birkaç haftalık günlük kayıtlara ihtiyacınız var demektir. log4j.xml "MaxBackupIndex" ve "MaxFileSize" param'larını ayarlamalısınız.

Alternatif olarak, (yerine xml) bir özellikleri dosyasını kullanarak ve (örneğin) 15 dosyaları kaydetmek isteyen varsa

log4j.appender.[appenderName].MaxBackupIndex = 15 
+6

Bu, DailyRollingFileAppender ile çalışır mı? – rogerdpack

7

DailyRollingFileAppender tarafından oluşturulan eski günlük dosyalarını silmeyi denetlemek için varsayılan değer yoktur. Ancak, eski günlük dosyalarını, maxBackupIndex'in RollingFileAppender için yaptığı gibi, aynı şekilde silen kendi özel Ekleyicinizi yazabilirsiniz.

Basit talimatlar 1 itibaren here

bulundu: Günlük bir günlük dosyası için Apache Log4J DailyRollingFileAppender kullanmaya çalışıyorsanız

, dosyaların sayısını belirlemek istediğiniz gerekebilir hangi gerektiği saklanın. RollingFileAppender'ın yuvarlanması gibi maxBackupIndex'i destekliyor. Ama Log4j (Apache log4j 1.2.16) geçerli sürümü, DailyRollingFileAppender kullanıyorsanız eski günlük dosyalarını silmek için herhangi bir mekanizma sağlamaz. MaxBackupIndex özelliğini eklemek için DailyRollingFileAppender'ın özgün sürümünde küçük değişiklikler yapmaya çalıştım. Dolayısıyla, gelecekteki kullanım için gerekli olmayan eski günlük dosyalarını temizlemek mümkün olacaktır.
İlgili konular