茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1671889 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_00030.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2017/7/7 14:16:04

log4j教學筆記(八)DailyRollingFileAppender

本範例的log4j為1.2.17,若看不太懂要先去看之前的範例。

順序為 環境設定log的檔案輸出log4j.xmlRollingFileAppender

 

-------------

緊接著 FileAppenderRollingFileAppender之後,再來要介紹的是
DailyRollingFileAppender

從DailyRollingFileAppender的名稱就知道和時間日期有關。

DailyRollingFileAppender可以依照需求來設定log輸出檔案的時間週期,例如每個月,每個小時,每天或每分鐘等。

log4j.xml的設定類似RollingFileAppender。

 

本範例的專案目錄結構如下,同RollingFileAppender。

MainTest.java用來執行程式,log4j.xml為設定log輸出的位置其樣式等。

 

我把MainTest.java中的log訊息改得簡單一點 ...

...

 

log4j.xml ...

...

說明

參數 encoding用來設定log訊息輸出的編碼,這邊用的是 UTF-8 (line 8)


DatePattern是DailyRollingFileAppender的一個重要參數,用來設定檔案輸出的週期,本範例設定為每分鐘輸出新的log檔案 (line 10)。 

DatePattern的週期

注意DatePattern的值中不可使用冒號" :"。至於不需處理的文字要放在單引號" '"內。

DailyRollingAppender只能將日期格式放在檔案名稱後,無法放在檔案名稱前 (這點真爛)

 

此範例將 layout設為 PatternLayout,因此要在其內給定ConversionPattern的格式(format),也就是log輸出的格式 (line 11 ~ line 13)

 


log4j.xml設定完後就可以執行MainTest.java來看看結果,執行完後會在專案目錄下多個"log.out"的log檔。(log檔的輸出位置請參考 前範例)

 

和之前範例一樣,將"log.out"檔案名稱改為"log.out.txt"來用記事本開啟

 

DailyRollingFileAppender的第一個log檔並不會加上DatePattern的樣式,必須在下一次週期產生的log檔才會加上DatePattern的樣式。

本範例設定的週期為每分鐘輸出一個新的log檔,所以在第一次執行完隔一分鐘後再執行一次,就會多一個新的log.out加上DatePattern設定的日期格式。

記得執行前必須先將剛修改的"log.out.txt"改回"log.out",否則又會重新輸出一個"log.out"檔案。

 

把兩個檔案名稱後加上".txt"用記事本開啟,會發現最後輸出的log訊息會在"log.out"內,而第一次輸出的log訊息會在有DatePattern的log.out檔案中(範例中的"log.out.2015-10-29-11-02")。

而且仔細看,DatePattern的時間不是最後執行的時間,而是第一次執行的時間,因此結論是最新的log訊息會輸出在沒有DatePattern的那個log檔,而舊的訊息會放在有當初執行時間的log檔

(如果你覺得這段敘述讓你看得昏昏欲睡的話,直接執行程式來觀察會比較清楚:p)

 

和RollingFileAppender比較起來,DailyRollingFileAppender好用多了 :-)。

 

文章參考於

亲亲宝宝(中華人民共和國人民的博客)

wiki.apache.org/logging-log4j/


原文出處:log4j教學筆記(八)DailyRollingFileAppender @ 菲比傻大姐&肉豬 :: 痞客邦 PIXNET ::
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|