1. 程式人生 > >自定義log4j2配置檔案地址

自定義log4j2配置檔案地址

預設情況下,只要把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(); } }