如何解决'正确初始化log4j系统'错误?

时间:2017-12-05 08:20:59

标签: java log4j log4j2

我创建了一个maven项目,在src -> test -> java下,我创建了包learnlog4j,在该包下,我测试了类。

我在项目的根目录下创建了log4j.properties,其中包含以下内容 -

log4j.rootLogger=INFO, stdout

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{HH:mm:ss:SSS} %p [%C{1}] %m%n

但是当我运行以下测试类时,

public class Log4jExample1 {
    final static Logger logger = Logger.getLogger(Log4jExample1.class);

    @BeforeClass
    public void beforeClass(){
        logger.info("IN Before Class");
    }

    @Test
    public void test1(){
        logger.info("IN Test");
    }

    @AfterClass
    public void afterClass(){
        logger.info("IN After Class");
    }
}

它给出错误 -

log4j:WARN No appenders could be found for logger (learnlog4j.Log4jExample1).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

我搜索了stackoverflow,但这没有帮助。如果log4j.properties位置正确,您能否告诉我?或者让我知道是否需要纠正。

1 个答案:

答案 0 :(得分:1)

你可以添加一个

BasicConfigurator.configure();

in beforeClass() - 获取基本控制台适配器的方法。

要使用log4j.properties,请使用

PropertyConfigurator.configure("log4j.properties");

有关详细信息,请参阅No appenders could be found for logger(log4j)?