无法在Log4j中设置日志记录级别和输出

时间:2016-08-25 13:04:40

标签: java logging log4j

我无法通过Log4j中的属性文件设置Root Logger Option。以下是我的属性文件的外观 -

我已将此文件保存为src文件夹根目录中的log4j2.properties。

# Root logger option
log4j.rootLogger=INFO, stdout

# Direct log messages to 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{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

我尝试将rootLogger设置为ALL,但它不起作用。然而;如果我通过我的程序中的方法将Level设置为ALL,则它可以工作。示例 -

package com.nanwani;

import org.apache.log4j.Level;
import org.apache.log4j.Logger;

public class LoggerTest {

    public static Logger log = Logger.getLogger(LoggerTest.class);

    public static void main(String[] args) {

        log.setLevel(Level.ALL);

    }

}

另外,它似乎根本不是指我的属性文件,但是如果我删除了这个文件,那么它确实会显示ERROR消息 - 使用默认属性文件找不到log4j2文件。

2 个答案:

答案 0 :(得分:1)

我找到了问题的答案。 Log4j2不支持配置属性文件,而不支持Log4j v1。新格式是XML,JSON和YAML,请参阅documentation

答案 1 :(得分:0)

文件log4j2.properties必须命名为log4j.properties(如果您使用的是Log4j版本1)。你必须使用log.debug(" message")记录一些东西。考虑将文件移动到src / main / resources文件夹怎么样?