2017-09-01 68 views
2

我是來自Log4j的1.2移動到Log4j的2.8和正在尋找一種方式來設置我的程序屬性文件的位置。在1.2,這是使用設置的Log4j 2屬性文件的位置?

PropertyConfigurator.configure("path/to/log4j.properties"); 

但是做,閱讀文檔,通過屬性文件中2.8的配置似乎被限制在
一)位於通過系統屬性的類路徑或
B)(見1

,因爲我有一些應用系統的一部分,有其自己的配置和需要加載它的需求,我不知道是否有一種方法使用屬性文件在運行時配置的日誌管理?

回答

2

有指定log4j2配置文件的位置多了一個辦法 -

org.apache.logging.log4j.core.config.Configurator.initialize(null, "path/to/log4j2.properties"); 

唯一預防措施的一點是,Configurator類不是公共API的一部分。因此,它可能在未來的版本中移除。

以上代碼在log4j2 version 2.8.2這是最新的。

1

使用:

File f = new File("E:/config/log4j2.xml"); 
    LoggerContext context = (LoggerContext) LogManager.getContext(false); 
    context.setConfigLocation(f.toURI());