如何检测已配置Java Util Logging?

时间:2012-02-02 10:24:15

标签: java logging

我有一些代码有时会从我自己的Main方法调用,有时它嵌入在别人的程序中。在配置日志记录时,我希望能够检测到某人已经配置了Java Util Logging,如果有,那么我想跳过我的配置。我有这个方法:

public static boolean isLoggingAlreadyConfigured(){        
    Logger logger = Logger.getLogger("");
    Handler[] handlers = logger.getHandlers();
    return handlers != null && handlers.length > 1;
}

但我认为这是不可靠的。

你能提出更好的建议吗?

1 个答案:

答案 0 :(得分:3)

简单的答案是java.util日志记录总是配置。

LogManager javadoc表示它是一个自动创建的全局对象,并且它是根据几个系统属性所说的自动配置的,或者(如果属性是未设置)使用内置日志记录属性配置。 (有关详细信息,请参阅javadoc)。最重要的是,您将永远不会看到记录器处于“未配置”状态。

您可以在默认情况下弄清楚JRE的内置日志记录属性配置是什么,并测试当前配置是否不同。但这种方法存在一些问题:

  • JRE的内置配置可以调整(根据javadoc)。
  • 不同的JRE版本可能有默认值(假设......)。

最重要的

  • 您可能无法以编程方式将某些特定于应用程序的配置与默认配置区分开来。