问题描述
我要低于错误
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 200
<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"/>
转换后,属性文件如下.使用XML的两体,它可以正常工作.
属性文件
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 log4j.appender.MAIL.From=xxx@example.com log4j.appender.MAIL.To=xxx@example.com 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
请让我知道如何在属性文件中使用StringTomatch并指定
推荐答案
属性文件不支持过滤器.您必须切换到XML配置.
来自过滤器的文档:
请注意,过滤仅由 .
资源:
其他推荐答案
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
确实有效
问题描述
I have following XML configration i would like to convert to java property file.
I am getting below error
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"/>
After converting the property file is as below. With XML configration it is working fine.
Property File
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 log4j.appender.MAIL.From=xxx@example.com log4j.appender.MAIL.To=xxx@example.com 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
Please let me know how i can use StringToMatch in property file and specify
推荐答案
Properties files don't support filters. You'll have to switch to an XML configuration.
From the documentation of Filter :
Note that filtering is only supported by the DOMConfigurator. The PropertyConfigurator does not support filters.
Resources :
On the same topic :
其他推荐答案
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
does work