在main方法中初始化log4j的最短方法是什么?

时间:2009-10-31 19:52:30

标签: java log4j

我希望所有内容都能记录到控制台,并且不想处理创建log4j.xml文件等等。我正在对一些库进行原型设计,并希望看到它们的完整日志输出。

我希望尽可能保持纯粹,不必像春天那样引入不必要的依赖。

5 个答案:

答案 0 :(得分:6)

我使用以下内容:

Logger.getRootLogger().setLevel(Level.ALL);
Layout layout = new PatternLayout("%d [%t] %-5p %c %x - %m%n");
Logger.getRootLogger().addAppender(new ConsoleAppender(layout));

答案 1 :(得分:2)

如果您想完全不使用配置文件,可以使用以下几行进行简单配置:

Properties props = new Properties();
props.setProperty("log4j.appender.CONSOLE",org.apache.log4j.ConsoleAppender");
props.setProperty("log4j.appender.CONSOLE.Threshold", "TRACE");
props.setProperty("log4j.appender.CONSOLE.layout,"org.apache.log4j.PatternLayout");
props.setProperty("log4j.appender.CONSOLE.layout.ConversionPattern","%-5p %d{HH:mm:ss} %-30C{1} | %m%n);"
props.setProperty("log4j.rootLogger", "TRACE, CONSOLE");
PropertyConfigurator.configure(props);

答案 2 :(得分:1)

看来这就是诀窍。

import org.apache.log4j.BasicConfigurator;

public class Main {

    private static void initializeLogger() {
        BasicConfigurator.configure();
    }

    public static void main(String args[]) {
        Main.initializeLogger();
    }
}

答案 3 :(得分:1)

最简单的方法是将以下代码放入类路径根目录(即您的源或资源文件夹)中的文件log4j.properties中:

log4j.rootLogger=info, A1
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%p] %c{2} %m%n

答案 4 :(得分:0)

您可以使用所需的值构建一个Properties集合,并将其传递给PropertyConfigurator.configure(Properties)方法。