2010-01-07 68 views
3

我想通過使用DailyRollingFileAppender日常旋轉日誌文件,但我有一個問題:日誌文件不會每天更新,所以它不會得到在沒有新東西的情況下旋轉。Log4j:旋轉日誌文件,即使文件沒有改變

有沒有在log4j.properties中可以設置它的方法,以便log4j每天輪換日誌文件,即使文件沒有更改?

+0

我懷疑沒有;有些東西需要記錄,以便log4net可以真正運行代碼並意識到它需要旋轉它(否則你需要一個後臺進程)。你能每天記錄一個單獨的事件嗎?這應該做你需要的。你想要解決什麼確切的問題? – 2010-01-07 23:37:27

+0

我有一些其他的腳本,試圖抓住每日的日誌。如果日誌沒有每天輪換,我會抓取相同的日誌超過1天,因爲日誌中沒有更新,我基本上抓取相同的日誌。顯然還有其他方法可以解決這個問題,但我只是想知道有沒有辦法在log4j中做到這一點。 感謝您的快速答覆btw。 :D – fei 2010-01-07 23:41:01

回答

6

如果沒有記錄發生,Log4j DailyRollingFileAppender將不會輸出空文件。從implementation

/** 
* This method differentiates DailyRollingFileAppender from its 
* super class. 
* 
* <p>Before actually logging, this method will check whether it is 
* time to do a rollover. If it is, it will schedule the next 
* rollover time and then rollover. 
* */ 
protected void subAppend(LoggingEvent event) { 
+0

謝謝!很高興知道。 – fei 2010-01-08 00:41:23