2010-09-16 15 views
17

Aşağıdaki XML karmaşasını java özellik dosyasına dönüştürmek istiyorum.log4j Özellik dosyasında StringToMatch

Ben mülkiyet dosya dönüştürme sonra hata

log4j:WARN Failed to set property [filter] to value "org.apache.log4j.varia.DenyAllFilter". 
log4j:ERROR Could not instantiate class [true]. 
java.lang.ClassNotFoundException: true 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:169) 
    at org.apache.log4j.helpers.Loader.loadClass(Loader.java:198) 
    at org.apache.log4j.helpers.OptionConverter.instantiateByClassName(OptionConverter.java:326) 
    at org.apache.log4j.PropertyConfigurator.parseAppenderFilters(PropertyConfigurator.java:881) 
    at org.apache.log4j.PropertyConfigurator.parseAppender(PropertyConfigurator.java:812) 
    at org.apache.log4j.PropertyConfigurator.parseCategory(PropertyConfigurator.java:735) 
    at org.apache.log4j.PropertyConfigurator.configureRootCategory(PropertyConfigurator.java:615) 
    at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:502) 
    at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:395) 
    at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:403) 
    at simpandfile.main(simpandfile.java:10) 

My XML Configration

<filter class="org.apache.log4j.varia.StringMatchFilter"> 
    <param name="StringToMatch" value="FileNotfound" /> 
    <param name="AcceptOnMatch" value="true" /> 
    </filter> 

    <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
     <param name="LevelMin" value="ERROR"/> 
     <param name="LevelMax" value="FATAL"/> 
    </filter> 

    <filter class="org.apache.log4j.varia.DenyAllFilter"/> 

altına alıyorum aşağıdaki gibidir. XML configration ile iyi çalışıyor. Mülkiyet

log4j.rootLogger=INFO, MAIL 

log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender 
# here's where I specify the layout and the pattern 

log4j.appender.MAIL.BufferSize=1 
log4j.appender.MAIL.SMTPHost=xxx.example.com 
[email protected] 
[email protected] 
log4j.appender.MAIL.Subject=Test Email. 
log4j.appender.MAIL.threshold=error 
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout 
log4j.appender.MAIL.layout.ConversionPattern=[%d{ISO8601}]%n%n%-5p%n%n%c%n%n%m%n%n 
log4j.appender.MAIL.filter=org.apache.log4j.varia.StringMatchFilter 
log4j.appender.MAIL.filter.StringToMatch=Filenotfound 
log4j.appender.MAIL.filter.AcceptOnMatch=true 
log4j.appender.MAIL.filter=org.apache.log4j.varia.DenyAllFilter 


log4j.logger.com.devdaily.myapp=DEBUG 
log4j.logger.org.springframework=DEBUG 

beni ben mülkiyet dosyasında StringToMatch kullanmak ve filtreler desteklemeyen

cevap

8

Özellikler dosyaları belirtebilirsiniz kadar bize bildirin Dosya

. Bir XML yapılandırmasına geçmek zorundasınız. filtreleme sadece DOMConfigurator tarafından desteklendiğini

Not: Filtre belgelerine

. PropertyConfigurator filtreleri desteklemiyor.


Kaynaklar:

+4

sözdizimi çalışmak yapmasıdır: log4j.appender.appenderName.filter.ID = fully.qualified.name.of.filter.class log4j.appender. appenderName.filter.ID.option1 = değer1 ... log4j.appender.appenderName.filter.ID.optionN = değerN Bunu gönderdiğiniz bağlantıda görüyorum. Bu – user171523

+2

hakkında gerçekten emin değilim Bu cevap doğru değil –

+0

Yanıt doğru ... Ben 1.2.15, 1.2.16, 1.2.17 test ve PropertyConfigurator filtreler için işe yaramadı ... Aşağıdaki yorumunuzu okuyun ("Çalışıyor. 1.2.16 - Jan Zyka 15 Kasım 11: 48'de") ... Ama bu doğru değil @JanZyka. Lütfen yapılandırmanızı paylaşır mısınız ??? – Aykut

29
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern=%d %-6p [%c] %m%n 
log4j.appender.console.filter.1=org.apache.log4j.varia.StringMatchFilter 
log4j.appender.console.filter.1.StringToMatch=entered 
log4j.appender.console.filter.1.AcceptOnMatch=true 
log4j.appender.console.filter.2=org.apache.log4j.varia.DenyAllFilter 

bir appender Filtreler'ini eklemek için

+0

Bunu denedim ve işe yaramıyor. – fiddlesticks

+3

Bunu denedim ve ÇALIŞIYOR. Log4j sürümünü kontrol edin. 1.2.16 kullanıyordum. –

+6

Çalışıyor. 1.2.16 –