log4j:WARN没有为logger找到appender(org.apache.http.impl.conn.SingleClientConnManager)

时间:2017-01-07 07:16:15

标签: java

我尝试使用`log4j.properties'文件配置log4j。

所有的工作,但我发现了一些奇怪的警告:

log4j:WARN找不到logger(org.apache.http.impl.conn.SingleClientConnManager)的appender。 log4j:WARN请正确初始化log4j系统。

这是我的Log4j.properties文件:

log4j.rootLogger=Debug, FILE

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=logs/Logger.log
log4j.appender.FILE.Threshold=info
log4j.appender.FILE.Append=true
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%5p::%d{yyyy-MM-dd}::%d{ABSOLUTE}::%c{1}::%L - %m%n

我使用以下类加载Log4j.properties:

public class Loader {

    static final Properties Log4j = new Properties();
    static Logger logger = Logger.getLogger(Loader.class);

    static {
        try {

            // loading log4j properties file
            Log4j.load(new FileInputStream("resources\\Log4j.properties"));
            PropertyConfigurator.configure(Log4j);
            logger.info("Logger initiated successfully");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

加载项找不到文件,因为您尝试使用相对路径执行FileInputStream。

选项1: 如果您想将文件更改为

Log4j.load(Loader.class.getClassLoader().getResourceAsStream("resources/Log4j.properties"));

选项2(首选): 将前导L更改为小写l,如log4j.properties

然后您可以删除配置,因为这是默认文件名。

Log4j.load(new FileInputStream("resources\\Log4j.properties"));
PropertyConfigurator.configure(Log4j);