如何检测丢失的LOG4J2配置?

时间:2015-08-27 13:19:54

标签: java log4j2

我希望能够检测到应用程序何时缺少LOG4J2.XML配置文件,并且在这种情况下设置一些其他默认值,而不是LOG4J2的其他默认值。

基本上,如果找不到配置文件,我想运行此代码:

    // A default configuration that shows ALL Logger output, without a XML config!
    LoggerContext ctx = (LoggerContext) LogManager.getContext(false);
    Configuration config = ctx.getConfiguration();
    LoggerConfig loggerConfig = config.getLoggerConfig(LogManager.ROOT_LOGGER_NAME); 
    loggerConfig.setLevel(Level.ALL);
    ctx.updateLoggers();  // This causes all Loggers to refetch information from their LoggerConfig.        

如何检测LOG4J2无法加载配置?

1 个答案:

答案 0 :(得分:5)

好像......

if (config instanceof DefaultConfiguration)

...就足够了,因为只要没有其他可用的东西就使用DefaultConfiguration,请参阅documentation以获取Log4j2配置:

  

如果找不到配置文件DefaultConfiguration   将会被使用。这将导致日志记录输出进入控制台。