今天想外置logback.xml,謝了例如以下代碼
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的自己主動提示,我下意識就選了第一個,寫下這篇博客這也算自我檢討吧.
