2011-02-01 8 views
7

Burada, log4j'nin sahip olduğu farklı eklerde birçok soru gördüm. Bu herhangi bir yerde tekrarlanırsa özür dilerim.CompositeRollingAppender'ın dosyaları nasıl yeniden adlandırdığını değiştirme

Uygulamamızdaki bir CompositeRollingAppender kullanıyorum çünkü hem zaman hem de boyuta göre günlük dosyasını açmamız gerekiyor.

myapp.log 
myapp.log.2010-12-11 
myapp.log.2010-12-11.1 
myapp.log.2010-12-12 

o log4j dosyaları yeniden adlandırır nasıl biçimini değiştirmek mümkün mü: Bu reklamı gibi, ancak biz gibi dosyalar ile bitirmek çalışır? Eminim ki, kaçırdığım numaralı zorlu bir mülk olmalı. Neden sordun uzatma hala .log olması durumu burada nokta

myapp.log 
myapp-2010-12-11.log 
myapp-2010-12-11.1.log 
myapp-2010-12-12.log 

: Yukarıdaki durumda Mesela ben gibi bir şey istiyorum? Uygulamamızın yöneticileri, dosyayı açmak için dosyayı çift tıklayamadıklarından şikayet ettiler (Biliyorum, biliyorum). Hepsi bir .log uzantısına sahipse, durum böyle olmaz.

Şimdiden teşekkürler.

+0

Bu bir kludge ancak tarih düzeninize '.log' literalini ekleyebilirsiniz. Tabii ki dosyalarınız 'myapp.log-2010-12-11.log' gibi görünecek, ama en azından çift tıklayarak açılabilir. – biziclop

+0

Evet - Bunu yapabilirim. Bunun sadece eksik olduğum bazı mülklerde bir değişiklik olduğunu umuyordum. Tabii ki ihtiyacım olanı yapmak için bir baz ekleyiciyi genişletebilirim. –

cevap

0

CompositeRollingAppender kullanabiliriz. Eklemek için uygun bir günlük dosyası varsa (başlangıçta) nasıl belirlendiğiyle ilgili oldukça sınırlıdır. Sadece yapılandırılmış statik adın sonuna kadar bitiş tarihini ve numarasını destekler.

Sen log4j ekstralar CompositeTriggeringPolicy kullanmayı deneyebilirsiniz ama tarih ve pencere içerecektir bir RollingPolicy bilmiyorum.

yöneticileriniz için seçim bir

<param name="FileNamePattern" value="MyApp.%d{yyyy-MM-W}.log" /> 

ile TimeBasedRollingPolicy ile RollingFileAppender kullanmak veya mevcut isimlerle yaşayan veya yeniden adlandırmak için bir cron işi çalıştırabilir böylece dosyalar üzerinde boyut sınırını vazgeçmek olduğunu

dosyaları, ancak bir sonraki güne kadar dosyaları yeniden adlandıramayacağınızı unutmayın (ya da dosya adı çarpışmaları alırsınız).

0

İstediğin özelliği desteklemiyor

<param name="FileNamePattern" value="C:\\logs\\MyApp.%d{yyyy-MM-dd}.log" />