2012-04-03 35 views
6

Apache commons kütüphanesi ve log4j kullanıyorum. Bir xml yapılandırma dosyası ve bir log4j.properties dosyam var. Xml yapılandırma dosyamdaki log4j özellikleri yolumu belirtmek istiyorum.log4j uyarı sorunu - apache commons

//Loading my xml file 
this.config = new XMLConfiguration(this.xmlFileName); 

aşağıdaki uyarılar yetiştirilir Şu anda:

log4j:WARN No appenders could be found for logger (org.apache.commons.configuration.ConfigurationUtils). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

Ancak ben henüz bir log4j nesne aramadım benim yaptığım benim ayarlarını yükleyin. Xml dosyasını okuduğumda log4j örneğimle başarılı bir şekilde çalışabilirim. Bu uyarıları kaldırmak için herhangi bir yolu var mı? log4j.properties dosya sınıf yolunda ise

cevap

1

Log4J çıkışlar kayıt cihazı oluşturulur, bu hata, ancak hiçbir appender (ler) gibi tanımlanmıştır (dahil edilmiştir). Pratikte, log4j başlatılmadan önce bir günlük oluşturulduğunda bu hata oluşur.

Herhangi bir log4j nesnesi çağırmadınız diyorsunuz. Ancak hata mesajında, org.apache.commons.configuration.ConfigurationUtils'un bir kaydedici nesnesi oluşturduğunu görüyorsunuz (satır 66'a bakın).

Sen, başlatma önce kapatmak How to turn off log4j warnings?

Logger.getRootLogger().setLevel(Level.OFF); 

başlatma normalde kök logger günlük düzeyini belirler beri tekrar açmak gerek olmamalıdır görebiliyordu.

+0

Tamam, 'org.apache.commons.configuration.ConfigurationUtils' içinde LOG'ı devre dışı bırakmak veya log4j özelliklerimi xml yapılandırmamın içine yerleştirmek için herhangi bir yol var mı? – PapaSmurf

0

En az appender ve yüklenen log4j kök kaydedicisi için logger düzeyini ayarlamak gerekir yapılandırma dosyası. Aksi takdirde, bu uyarı mesajını göreceksiniz. Kök kaydedicileri için appender ve kayıt cihazı seviyesi ayarlama

Örnek:

#Set root logger 's level and its appender to an appender called CONSOLE which is defined below. 
log4j.rootLogger=DEBUG, CONSOLE 

#Set the behavior of the CONSOLE appender 
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender 
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout 
log4j.appender.CONSOLE.layout.ConversionPattern=%d [%t] %-5p %c - %m%n 
0

Bu geçici çözüm ile benim sorunu çözmek:

//Disable log level 
Logger.getRootLogger().setLevel(Level.OFF); 

Şimdi ben UYARILARIN olmadan benim xml yapılandırma dosyası okuyabilir. ayar log düzeyinde sonra
:

Logger.getRootLogger().setLevel(Level.INFO); 
+0

Bu benim yazımdaki yorumumda önerdiğim çözüm değil mi? – ChrLipp

İlgili konular