2010-09-16 35 views
17

Tôi có cấu hình XML sau đây tôi muốn chuyển đổi sang tệp thuộc tính java.log4j StringToMatch trong tập tin thuộc tính

Tôi nhận được dưới đây lỗi

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) 

XML configration My

<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"/> 

Sau khi chuyển đổi các tập tin tài sản là như dưới đây. Với cấu hình XML nó hoạt động tốt.

tài sản tập

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 

Xin vui lòng cho tôi biết làm thế nào tôi có thể sử dụng StringToMatch trong tập tin tài sản và xác định

Trả lời

8

Thuộc tính file không hỗ trợ bộ lọc. Bạn sẽ phải chuyển sang cấu hình XML.

Từ các tài liệu của bộ lọc:

Lưu ý rằng lọc chỉ được hỗ trợ bởi các DOMConfigurator. PropertyConfigurator không hỗ trợ bộ lọc.


Resources:

Cùng chủ đề:

+4

Cú pháp để thêm bộ lọc để một appender là: log4j.appender.appenderName.filter.ID = fully.qualified.name.of.filter.class log4j.appender. appenderName.filter.ID.option1 = value1 ... log4j.appender.appenderName.filter.ID.optionN = valueN Tôi thấy điều này trong liên kết ở trên mà bạn đã gửi. Tôi không thực sự chắc chắn về điều này – user171523

+2

Câu trả lời này là không đúng –

+0

Câu trả lời là chính xác ... Tôi đã thử nghiệm 1.2.15, 1.2.16, 1.2.17 và PropertyConfigurator không hoạt động cho bộ lọc ... Tôi đã đọc bình luận bên dưới của bạn ("Nó hoạt động. 1.2.16 - Jan Zyka 15/11 'lúc 8:48") ... Nhưng điều này không đúng @JanZyka. Bạn có thể vui lòng chia sẻ cấu hình của bạn ??? – 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 

làm việc

+0

Tôi đã thử điều này và nó không hoạt động. – fiddlesticks

+3

Tôi đã thử điều này và nó LÀM VIỆC. Kiểm tra phiên bản Log4j. Tôi đã sử dụng 1.2.16. –

+6

Nó hoạt động. 1.2.16 –

Các vấn đề liên quan