【问题标题】:How to resolve 'Initialize the log4j system properly' error?如何解决“正确初始化 log4j 系统”错误?
【发布时间】:2018-05-18 20:09:56
【问题描述】:

我创建了一个 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 的位置是否正确?或者让我知道是否需要更正。

【问题讨论】:

    标签: java log4j log4j2


    【解决方案1】:

    你不能添加一个

    BasicConfigurator.configure();
    

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

    要使用您的 log4j.properties,请使用

    PropertyConfigurator.configure("log4j.properties");
    

    详情请见No appenders could be found for logger(log4j)?

    【讨论】:

    • 这不会从log4j.properties 文件中读取信息。它按照默认设置记录。
    • 是的,你是对的。对不起。我被您的 log4j.properties 配置了控制台适配器这一事实误导了。我已经更新了上面的答案。
    猜你喜欢
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 2011-09-30
    • 1970-01-01
    • 2017-08-26
    • 1970-01-01
    相关资源
    最近更新 更多