2012-01-20 53 views
3

我使用log4j的我的应用程序 - 有我需要看到所有的日志消息,所以我定义设置日志记录的目前存在的水平记录仪中的log4j

# General configuration 
log4j.rootLogger = ALL, ConsoleAppender 

# Appender configuration 
log4j.appender.ConsoleAppender = org.apache.log4j.ConsoleAppender 
log4j.appender.ConsoleAppender.layout = org.apache.log4j.PatternLayout 
log4j.appender.ConsoleAppender.layout.ConversionPattern = %5p (%c) %m%n 

但是,当我开始使用Apache的HttpClient库(其是令人敬畏的顺便说一句),我的控制台被它的日志覆盖了 - 一切都被记录了,我无法再看到自己的应用程序的日志输出。

那么如何告诉HTTPClient库它应该只记录WARN消息,而我自己的应用程序仍然在ALL级别上登录?

我创建使用

Logger logger = Logger.getLogger(MyClass.class); 
PropertyConfigurator.configure("log4j.properties"); 

回答

4

这是很简单的我的申请记录。只需添加下面的行。

log4j.logger.org.apache.commons.httpclient=WARN 

同样,你可以通过它附加到前缀log4j.logger如下配置任何包com.foocom.foo.Bar职业等级:

log4j.logger.com.foo=MYLEVEL 
log4j.logger.com.foo.Bar=DEBUG 
+0

你应该补充一点propertie的左半部分由两个部分组成:'log4j.logger'和'org.apache.commons.httpclient'。第二部分命名您希望此日志级别适用的软件包。 – 2012-01-20 09:09:30

+0

@Tichodroma对于任何使用log4j或HttpClient的人都很明显。 – adarshr

+0

也许是,也许不是:) – 2012-01-20 09:12:07