代码之家  ›  专栏  ›  技术社区  ›  Nick Stinemates

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

  •  4
  • Nick Stinemates  · 技术社区  · 15 年前

    我希望所有的东西都能登录到控制台,而不需要处理如何创建log4j.xml文件等。我正在原型化一些库,并希望看到它们的完整日志输出。

    我希望尽可能保持它的纯粹性,而不必引入不必要的依赖性,如Spring等。

    5 回复  |  直到 15 年前
        1
  •  6
  •   idrosid    15 年前

    我使用以下方法:

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

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

    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);
    
        3
  •  1
  •   Nick Stinemates    15 年前

    看来这就是诀窍。

    import org.apache.log4j.BasicConfigurator;
    
    public class Main {
    
        private static void initializeLogger() {
            BasicConfigurator.configure();
        }
    
        public static void main(String args[]) {
            Main.initializeLogger();
        }
    }
    
        4
  •  1
  •   Ramon    15 年前

    最简单的方法是将以下代码放到文件中 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
    
        5
  •  0
  •   rsp    15 年前

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