2012-11-21 26 views
12

Aşağıdaki log4j2.xml dosyası var: Ben tekrar tekrar aynı günlük dosyası üzerine yazmak öyle kilog4j2 - Günlük dosyalarının sayısının sınırlandırılması

  1. yerine bu yapılandırmayı değiştirebilir nasıl

    <?xml version="1.0" encoding="UTF-8"?> 
    <configuration status="OFF"> 
        <appenders> 
        <RollingFile name="testLog" fileName="test.log" filePattern="" append="false"> 
         <PatternLayout pattern="[%t] %-5level - %msg%n%n"/> 
        <SizeBasedTriggeringPolicy size="5mb" /> 
        </RollingFile> 
        </appenders> 
        <loggers> 
        <logger name="TestsLogger" level="trace" additivity="false"> 
         <appender-ref ref="testLog"/> 
        </logger> 
        <root level="debug"> 
         <appender-ref ref="testLog"/> 
        </root> 
        </loggers> 
    </configuration> 
    

    Yine 5mb limitine ulaşıldıktan sonra yeni bir dosya oluşturulur. Test1.log, test2.log ve benzeri bir şey olması güzel olurdu.

  2. 1'de oluşturulan kısmi günlük dosyalarının sayısını nasıl sınırlandırabilirim?

    creating test1.log [present log files: test1.log] 
    test1.log - 5mb limit reached 
    creating test2.log [present log files: test1.log, test2.log] 
    test2.log - 5mb limit reached 
    creating test3.log [present log files: test2.log, test3.log] 
    test3.log - 5mb limit reached 
    creating test4.log [present log files: test3.log, test4.log] 
    and so on 
    

bilen var mı

, nasıl böyle bir şey elde etmek: Ne elde etmek istiyorum aşağıdaki gibi bir düzendir? Tabii ki hoş olurdu, eğer böyle bir şey log4j2 ile tek başına mümkün olsaydı. Ancak, log4j2'yi ana Java uygulamasının yanında çalışacak ve gereksiz günlük dosyalarını silecek ve son iki günlük dosyasını sağlam tutarken bir tür harici programla birleştirmenin bir yolu olabilir. Öyleyse, kimse en azından 1 için bir öneriye sahipse, zaten aradığım şey olabilir. Çünkü 2. bölüm için bir program yazabilirim. Tabii ki, 2. bölüm log4j2 ile de yapılabilirse harika olurdu.

cevap

20

Şu ana kadar hiçbir zaman log4j2 kullanmamıştım, ancak RollingFileAppender dokümantasyonu size birçok yapılandırma örneği sunuyor.

<RollingFile name="RollingFile" fileName="logs/app.log" 
      filePattern="logs/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz"> 
    <PatternLayout> 
    <pattern>%d %p %C{1.} [%t] %m%n</pattern> 
    </PatternLayout> 
    <Policies> 
    <SizeBasedTriggeringPolicy size="5 MB"/> 
    </Policies> 
    <DefaultRolloverStrategy max="20"/> 
</RollingFile> 
+0

Maalesef geç reaksiyon için: Eğer dikişleri için ilginç

böyle bir şey (DefaultRolloverStrategy kullanarak) olmak. Sadece cevabın için teşekkür etmek istedim. Log4j2'nin gelecekteki olası kullanımları için bana bir örnek olarak hizmet edecektir. –

+0

çok teşekkürler, işe yarıyor – Braj