在log4j中为记录器设置不同级别的日志记录

时间:2012-01-20 09:04:14

标签: java logging log4j httpclient

我正在使用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库(这很棒的btw)之后,我的控制台因其日志记录而变得模糊不清 - 所有内容都被记录下来,我无法再看到自己应用程序的日志输出了。

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

我使用

创建我的应用程序记录器
Logger logger = Logger.getLogger(MyClass.class);
PropertyConfigurator.configure("log4j.properties");

1 个答案:

答案 0 :(得分:4)

这很简单。只需添加以下行。

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

同样,您可以为任何包com.foo或类com.foo.Bar配置级别,方法是将其附加到前缀log4j.logger,如下所示:

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