如何使用java util logger为整个项目设置一次LogManager.getLogManager()。readConfiguration?

时间:2014-06-03 10:44:54

标签: java logging log4j slf4j java.util.logging

在我的项目中,每个类都有日志消息,如

Logger.getLogger(" LoggingExample.class")。info("记录INFO级别的消息");

  • 如何指定常见的LogManager.getLogManager()。readConfiguration at 一个地方,而不是为每个文件写配置。
  • 对于java util logger,它是默认的logging.properties java主目录我不想在java主目录i中维护属性文件 想在项目文件夹中维护它如何在java util logger中执行此操作

2 个答案:

答案 0 :(得分:0)

您不需要每次都创建记录器。由于java.util.Logger是线程安全的,所以只声明一次并且每次都使用它是可行的。以下是一个例子:

private static final Logger myLog = Logger.getLogger("loggerName");
myLog .warn("Text");

最佳做法是每个班级使用一个记录器。如果它不涉及更多的努力,我建议使用log4j框架。

答案 1 :(得分:0)

您需要将strong reference保留在记录器中,这样您就不会丢失配置更改。以下是取自Java Logging Overview

的修改示例
public class Nose {
// Obtain a suitable logger.
private static final String CLASS_NAME = Nose.class.getName();
private static final Logger logger = Logger.getLogger(CLASS_NAME);
public static void main(String argv[]) {
    // Log a FINE tracing message
    logger.fine("doing stuff");
    try{
        Wombat.sneeze();
    } catch (Exception ex) {
        // Log the exception
        logger.log(Level.WARNING, "trouble sneezing", ex);
    }
    logger.fine("done");
}

}

如果要使用自定义配置文件,可以指定“java.util.logging.config.file”系统属性以指向属性文件的路径。这在LogManager文档中有详细解释。