如何检查是否已配置log4j2

时间:2015-06-01 21:44:36

标签: configuration log4j2

当您不为log4j2提供配置时,我们都熟悉此消息:

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.

如何检查log4j2是否尚未配置,以便我可以根据需要使用默认配置进行初始化?

2 个答案:

答案 0 :(得分:0)

在从应用程序第一次调用log4j2代码时,log4j将在方法返回之前自行配置。如果未找到配置文件,则log4j将使用默认配置自动配置,该配置仅将错误记录到控制台。因此,从您的应用程序的角度来看,从未有过配置log4j的时间。

一个想法是检查log4j2.xml文件是否在类路径中(使用Class.getResource),如果它不是调用System.setProperty("log4j.configurationFile", pathToYourConfig)。请注意,必须在第一次调用log4j2 API之前完成。

替代方案:

一旦你有一个LoggerContext,你可以打电话 context.setConfigLocation(configLocation)其中configLocation是一个URI。 这将迫使重新配置。

答案 1 :(得分:0)

我最终创建了自己的ConfigurationFactory并将其注册为

-Dlog4j.configurationFactory

这样你的ConfigurationFactory就会知道它是否已被调用过。