Java Logback:加载groovy配置

Java Logback:加载groovy配置,java,logback,logback-groovy,Java,Logback,Logback Groovy,如何以编程方式加载自定义命名的groovy配置(logback config.groovy)配置? 当我尝试时: LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory(); loggerContext.reset(); JoranConfigurator configurator = new JoranConfigurator(); configurator.setContext(loggerC

如何以编程方式加载自定义命名的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时出现问题 文件。请参阅以前报告的错误


出什么问题了?

这里的问题是
JoranConfigurator
只针对XML配置;对于Groovy配置文件,logback使用不同的类
GafferConfiguration
。(遗憾的是,logback文档没有很好地宣传这一事实。)但是与其直接引用
GafferConfiguration
,不如使用
ContextInitializer
类:

LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
loggerContext.reset();
new ContextInitializer(loggerContext).configureByResource(this.getClass().getResource("/logback-config.groovy"));
这允许您同时处理XML和Groovy文件类型,并利用logback的一些内置错误检查