自定義log4j2配置檔案地址
阿新 • • 發佈:2019-02-04
預設情況下,只要把log4j配置檔案放在 CLASSPATH 環境變數所指定的目錄, JAVA 啟動時會制動載入。實際專案中經常需要把配置檔案與打包分離,方便修改,所以需要自定義配置檔案載入地址。
SpringMvc
採用spring mvc框架時需要一般在web.xml裡配置
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.properties</param-value>
</context-param >
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>6000</param-value>
</context-param>
Spring Boot
採用spring boot輕量級框架後,大部分自定義配置都放在application.properties裡了
logging.config=file:config/log4j2.xm
無框架
本節為本文重點,發現很多人離了框架就不知道該怎麼寫程式碼了。
log4j
鍵值對格式
PropertyConfigurator.config(filepath)
XML 格式
DOMConfigurator.config(filepath)
log4j2
log4j2裡一般不建議使用properties檔案,而是使用xml檔案。log4j2的版本里自定義配置檔案載入地址的介面改為Configurator.initialize了
static {
try {
ConfigurationSource source;
String relativePath =
"config" + System.getProperty("file.separator") + "log4j2.xml";
File log4jFile = new File(
System.getProperty("user.dir") + System.getProperty("file.separator")
+ relativePath);
if (log4jFile.exists()) {
source = new ConfigurationSource(new FileInputStream(log4jFile), log4jFile);
Configurator.initialize(null, source);
}
} catch (IOException e) {
e.printStackTrace();
}
}