Log4j2指定配置檔案路徑
阿新 • • 發佈:2019-01-24
上一文中,我們學習瞭如何利用Log4j2來幫助我們更加優雅的打日誌。在專案編譯成jar包正式上線的時候,作者遇到了一個問題,就是
log4j2.xml
將會被打包到jar中,不能再上線後隨時更改。
為了能讓專案上線後,根據不同的需要改變一些日誌的配置資訊,如:日誌輸出路徑,日誌輸出級別等,我們需要對log4j
配置檔案的載入進行一些變化。對此,可以通過log4j
的ConfigurationSouce
來指定配置檔案位置,並載入。
ConfigurationSource source;
String relativePath = "log4j2.xml";
String filePath = CONFIG_PATH + System.getProperty("file.separator" )
+ relativePath;
File log4jFile = new File(filePath);
try {
if (log4jFile.exists()) {
source = new ConfigurationSource(new FileInputStream(log4jFile), log4jFile);
Configurator.initialize(null, source);
log = (Logger) LogManager.getLogger("LOGGER_NAME");
log.debug("this is a debug" );
log.info("this is a info");
//.....
} else {
logInited = false;
System.out.println("loginit failed");
System.exit(1);
}
} catch (Exception e) {
e.printStackTrace();
System.exit(0);
}
這樣,我們只需要將配置檔案放置到CONFIG_PATH
路徑下,命名為log4j2.xml
即可成功載入,如果專案有需要,可以隨時更改。