如何加载指定路径的Logback.xml

今天想外置logback.xml,写了如下代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
File logbackFile = new File("./conf/logback.xml");
if (logbackFile.exists()) {
LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
JoranConfigurator configurator = new JoranConfigurator();
configurator.setContext(lc);
lc.reset();
try {
configurator.doConfigure(logbackFile);
}
catch (JoranException e) {
e.printStackTrace(System.err);
System.exit(-1);
}
}

但是老师不按照策略输出,整了两小时,开始以为lc.reset()放错位置了,但是后来发现是我的JoranConfigurator这个类引用错了,正确的类路径是
ch.qos.logback.classic.joran.JoranConfigurator
但是我错误引用了
ch.qos.logback.access.joran.JoranConfigurator
哭死的节奏,debug到代码里面怎么就说没有处理contextName的Action,原来ch.qos.logback.access只处理基本的配置,上下文这个处理在logback-classic里面,究其原因是因为eclipse的自动提示,我下意识就选了第一个,这也算桑踹个检讨书吧.

坚持原创技术分享,您的支持将鼓励我继续创作!