2016-08-01 59 views
0

我的應用程序每次運行時都會輸出一些文件到動態創建的目錄,其名稱由System.currentTimeMillis()確定。Log4j2 - 記錄到動態創建的目錄

嘗試以下解決方案:

<File name="File" fileName=".\xxx\${sys:log4j2.saveDirectory}\test.log" immediateFlush="false" append="false">\ 
    <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
</File> 

在Java代碼中我稱之爲:

String path = Long.toString(System.currentTimeMillis()); 
System.setProperty("log4j2.saveDirectory", path); 

但是這並不工作,因爲我得到FileNotFoundException。什麼是告訴log4j2登錄這種動態創建的文件夾的方法?

+0

你可以檢查目錄是否嘗試寫入存在日誌/創建? – uniknow

+0

問題解決了,錯過了記錄器在設置屬性之前被初始化 –

回答

0

問題已解決。我打電話

System.setProperty("log4j2.saveDirectory", path); 

記錄器初始化後。解決方案是在初始化記錄器或設置默認路徑之前執行此操作。