0

如何以编程方式加载自定义命名 groovy config ( 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"));

得到了expt:

ch.qos.logback.core.joran.spi.JoranException:解析 XML 文档时出现问题。请参阅以前报告的错误。

怎么了?

4

1 回答 1

0

这里的问题是JoranConfigurator仅针对 XML 配置;对于 Groovy 配置文件,logback 使用不同的 class GafferConfigurator。(不幸的是,logback 文档并没有很好地宣传这一事实。)但与其GafferConfigurator直接引用,不如使用ContextInitializer类来代替:

LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
loggerContext.reset();
new ContextInitializer(loggerContext).configureByResource(this.getClass().getResource("/logback-config.groovy"));

这允许您同时处理 XML 和 Groovy 文件类型,并利用一些 logback 的内置错误检查。

于 2018-05-10T16:45:08.010 回答