我希望所有内容都能记录到控制台,并且不想处理创建log4j.xml文件等等。我正在对一些库进行原型设计,并希望看到它们的完整日志输出。
我希望尽可能保持纯粹,不必像春天那样引入不必要的依赖。
答案 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)
方法。