2010-12-09 33 views
15

Log4J üzerinden Commons kullanan bir proje üzerinde çalışıyorum.Log4J günlük dosyasını bulma

Günlük dosyasının yolunu bulmaya çalışıyorum, ancak günlük dosya yolunu Logger'dan döndürecek uygun bir yöntem bulamıyorum.

Hiç kimse buna teşebbüs etti mi?

cevap

27

Tüm ekleyiciler kök günlüğü'dan almak ve daha sonra günlük dosyasının adını almak gerekir.

Enumeration e = Logger.getRootLogger().getAllAppenders(); 
    while (e.hasMoreElements()){ 
     Appender app = (Appender)e.nextElement(); 
     if (app instanceof FileAppender){ 
     System.out.println("File: " + ((FileAppender)app).getFile()); 
     } 
    } 
1

Belki Ekleyicileri almaya çalışabilirdiniz?

Enumeration appenders = logger.getRootLogger().getAllAppenders(); 

Eğer bir FileAppender varsa, Dosya alabilirsiniz ... Böyle

şey: Bu yardımcı olur

FileAppender fileAppender = null; 
Enumeration appenders = logger.getRootLogger().getAllAppenders(); 
while(appenders.hasMoreElements()) { 

    Appender currAppender = (Appender) appenders.nextElement(); 
    if(currAppender instanceof FileAppender) { 
     fileAppender = (FileAppender) currAppender; 
    } 
} 

if(fileAppender != null) { 
    logDest = fileAppender.getFile(); 
    System.out.println("logDest : " + logDest); 
} 

Umut!

+0

Ben Sen appenders almak için kök kayıt kullanımı gerekir –

+1

:), bu java merkezli yapmak kodunuzu güncelledik. 'Logger.getRootLogger(). GetAllAppenders();' – dogbane

+0

@ Elite Gentleman Teşekkürler, şimdi daha güzel görünüyor :) – LaGrandMere

İlgili konular