Я хотел бы иметь возможность обнаружить, когда в приложении отсутствует файл конфигурации LOG4J2.XML, и в этом случае установить некоторые другие значения по умолчанию, чем в противном случае, что и для LOG4J2.Как обнаружить отсутствующую конфигурацию LOG4J2?
В принципе, я хотел бы запустить этот код, если конфигурационный файл Isnt найдено:
// 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 не удалось загрузить конфигурацию?
Просто предположим, но, возможно, 'if (config instanceof DefaultConfiguration)' может сделать трюк. –
Это было умно, добавьте его в качестве ответа, и я его выберу. config - это экземпляр XmlConfiguration, когда LOG4J2.XML находится в пути к классам, или DefaultConfiguration в противном случае. –
Просто примечание для будущих людей. Если вы получаете ошибку с методом getContext(), который не существует, вам нужно поменять импорт org.apache.logging.log4j.spi.LoggerContext с org.apache.logging.log4j. core.LoggerContext – Frederik