log4...是基於log4j的一系列的c++移植版本,使用了log4j的模式結構,目前主要有以下幾個版本:
1. log4cxx, 目前是到0.10.0版,Apache下的孵化項目,不能獨立編譯,依賴於APR,編譯比較麻煩,2008年以后就沒再更新
2. log4cplus, 目前最新版本是1.2.0,最近一次更新2016-01-16,不依賴於第三方庫,下載位置https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/1.2.0/
3. log4cpp, 目前最新版本1.1.2,最近一次更新2016年-08-02,也不依賴與第三方庫,與log4cplus功能類似,但是簡化了一些實現,增加了一些功能,下載位置https://sourceforge.net/projects/log4cpp/files/?source=navbar。因為基本結構大致類似,性能上相比也沒有明顯差別。
一、log4j類比
在DailyRollingFileAppender中可以指定monthly(每月)、 weekly(每周)、daily(每天)、half-daily(每半天)、hourly(每小時)和minutely(每分鍾)六個頻度,這是通過為 DatePattern選項賦予不同的值來完成的。DatePattern選項的有效值為:
- yyyy-MM, 對應monthly(每月)
- yyyy-ww, 對應weekly(每周)
- yyyy-MM-dd, 對應daily(每天)
- yyyy-MM-dd-a, 對應half-daily(每半天)
- yyyy-MM-dd-HH, 對應hourly(每小時)
- yyyy-MM-dd-HH-mm, 對應minutely(每分鍾)
- DatePattern中不用處理的文字要放到單引號(‘)中,如上面的(.)。如果您對此有疑問可以查閱SimpleDateFormat的文檔。DailyRollingFileAppender中使用這個類來處理DatePattern。
DatePattern格式化之后的文本作為文件名字的后綴。DailyRollingFileAppender不支持格式化之后的文本作為文件名字的前綴。
DailyRollingFileAppender在每一個日志事件(LoggingEvent)附加(append)之前檢查是否需要附加。也就是說如果在一個滾動區間中沒有任何日志記錄,那么這個區間的日志記錄文件就不會形成。
在實際編程時,要使Log4j真正在系統中運行事先還要對配置文件進行定義。定義步驟就是對Logger、Appender及Layout的分別使用。Log4j支持兩種配置文件格式,一種是XML格式的文件,一種是Java properties(key=value)【Java特性文件(鍵=值)】。(這里只說明properties文件)
二、log4cpp中的DailyRollingFileAppender
需求分析:
1)按天存放log;參考--log4cpp按照日期保存 。
2)按照每天每小時存放log;