使用Java配置Log4J

时间:2013-12-24 00:15:50

标签: java log4j log4j2

在Log4J网站上,我发现我可以使用没有属性文件的Java代码来配置它。我有什么基本的例子可以做到这一点吗?

1 个答案:

答案 0 :(得分:1)

在Log4J 1.x中:

使用BasicConfigurator.configure();

取自Log4J manual

log4j环境可以通过编程方式完全配置。但是,使用配置文件配置log4j要灵活得多。目前,配置文件可以用XML或Java属性(key = value)格式编写。 让我们在使用log4j的假想应用程序MyApp的帮助下尝试如何完成。

import com.foo.Bar;

 // Import log4j classes.
 import org.apache.log4j.Logger;
 import org.apache.log4j.BasicConfigurator;

 public class MyApp {

   // Define a static logger variable so that it references the
   // Logger instance named "MyApp".
   static Logger logger = Logger.getLogger(MyApp.class);

   public static void main(String[] args) {

     // Set up a simple configuration that logs on the console.
     BasicConfigurator.configure();

     logger.info("Entering application.");
     Bar bar = new Bar();
     bar.doIt();
     logger.info("Exiting application.");
   }
 }

班级Bar如下:

package com.foo;
import org.apache.log4j.Logger;

public class Bar {
  static Logger logger = Logger.getLogger(Bar.class);

  public void doIt() {
    logger.debug("Did it again!");
  }
}

调用BasicConfigurator.configure方法会创建一个相当简单的log4j设置。此方法硬连线到将根记录器添加到ConsoleAppender 。输出将使用PatternLayout 设置为模式“%-4r [%t]%-5p%c%x - %m%n 格式化。 请注意,默认情况下,根记录器分配给Level.DEBUG 。 MyApp的输出是:

0    [main] INFO  MyApp  - Entering application.
36   [main] DEBUG com.foo.Bar  - Did it again!
51   [main] INFO  MyApp  - Exiting application.


在Log4J 2.x中:

示例相同,但* 没有调用* BasicConfigurator.configure();Logger.getLogger也是LogManager.getLogger