在Log4J网站上,我发现我可以使用没有属性文件的Java代码来配置它。我有什么基本的例子可以做到这一点吗?
答案 0 :(得分:1)
使用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.
示例相同,但* 没有调用* BasicConfigurator.configure();
,Logger.getLogger
也是LogManager.getLogger