Выход из системы: загрузка заводного конфига
Как я могу программно загрузить нестандартный конфиг с именем groovy (logback-config.groovy
) конфиг?
Когда я пытаюсь:
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
loggerContext.reset();
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(loggerContext);
configurator.doConfigure(this.getClass().getResource("/logback-config.groovy"));
Получил опыт:
ch.qos.logback.core.joran.spi.JoranException: проблема с анализом XML-документа. Смотрите ранее сообщенные ошибки.
В чем дело?
1 ответ
Проблема здесь в том, что JoranConfigurator
специфично только для конфигураций XML; для конфигурационных файлов Groovy, logback использует другой класс GafferConfigurator
, (К сожалению, документация о выходе из системы не дает должной рекламы этому факту.) Но вместо того, чтобы ссылаться на GafferConfigurator
напрямую, было бы лучше использовать ContextInitializer
класс вместо:
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
loggerContext.reset();
new ContextInitializer(loggerContext).configureByResource(this.getClass().getResource("/logback-config.groovy"));
Это позволяет одновременно обрабатывать типы файлов XML и Groovy, а также использовать некоторые из встроенных средств проверки ошибок в logback.