今天在调试程序时,发觉eclipse console控制台中打印了很多无用的信息,比如:
2009-04-01 18:52:21,406 http-8088-1 WARN (CommonsLogger.java:46) - Could not find property [struts.valueStack]
2009-04-01 18:52:22,000 http-8088-1 WARN (CommonsLogger.java:46) - Could not find property [__cleanup_recursion_counter]
2009-04-01 18:52:22,000 http-8088-1 WARN (CommonsLogger.java:46) - Could not find property [org.apache.catalina.jsp_file]
还有hibernate的一些日志,我想要总体设置log级别为INFO,而对于个别类中的log级别设置为ERROR,这样个别类的log就不会出现了。我上网查了查,发现了http://sllizhimei.javaeye.com/blog/359949 这位作者的作法,但是他只介绍了在log4j.xml中的修改方式,即:
在log4j.xml里面添加下面的一段话:
<category name="com.opensymphony.xwork2.ognl.OgnlValueStack">
<priority value="error"/>
</category>
但我是用log4j.properties配置的log。所以这篇文章只给了我提示,我又上网一通找,终于让我找到以下文章
http://wolfsquare.javaeye.com/blog/38686
从这篇文章中我发现了新大陆,原来在property文件的最底下加入这句话就OK了:
log4j.logger.com.opensymphony.xwork2=ERROR,stdout
这句话的意思是:把com.opensymphony.xwork2下的所有的类的输出级别都提高到了ERROR,而其他的类还是按原来的log级别显示,
这个问题,搞定!
附上我的log4j.properties,供大家参考:
log4j.rootLogger=INFO, stdout, logfile
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%l] - %m%n
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.Threshold=INFO
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.Threshold=INFO
log4j.appender.logfile.File=D:/tomcat6.0/logs/g.log
log4j.appender.logfile.Append=true
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%l] - %m%n
log4j.logger.com.opensymphony.xwork2=ERROR,stdout, logfile
log4j.logger.org.hibernate.cfg=ERROR,stdout, logfile