1.起因
看到官方網站上的log4cpp的代碼已經更新到了1.1.1,而我目前使用的1.0.3版本,所以想使用下最新版本。在使用過程中發現相對於老版本,新版本的變化還是比較大的,特寫下此文記錄下。
2.環境部署
其實新版本很早就已經發布了,只是很久沒更新所以才會落后,新版本可以從 官方網站 上去下載。下載后將其解壓縮到本地,可以看到它自帶了默認的工程僅支持到VS2010。這樣就很簡單了,我們復制下msvc10,將其重命名為msvc11,就像下圖一樣

然后進入該文件夾,將msvc10.sln文件重命名為msvc11.sln,然后用VS2012打開。由於我們是用高版本打開低版本項目工程文件,因此在打開過程中會提示我們是否進行項目更新,選擇全部更新即可,處理以后的街內容如下圖

到此環境部署工作已經結束。
3.編譯步驟
log4cpp的解決方案設置比較完整,基本不需要我們修改什么就可以直接編譯成功。在這里我們只需要按照自己的需要編譯動態庫版本(log4cpp)或者靜態庫版本(log4cppLIB)即可,在對應的工程項目文件夾內會產生對應的庫文件。
編譯結束。
4.使用步驟
- 4.1.提取必要的庫文件
我這里使用的時log4cpp動態庫版本,因此提取了log4cpp.lib和log4cpp.dll兩個文件,分別放在合適的地方 - 4.2.提取頭文件
提取log4cpp/include內的所有文件,也可以用路徑包含的方式指向該文件夾 - 4.3.編寫配置文件
參考測試實例的配置文件,可以按照自己的需要寫一份。我這里按照我的需要寫了一份,大家可以點擊這里進行下載,下載以后按照自己的需要進行修改下即可。 - 4.4.編寫使用代碼
參考實例中的代碼,可以很容易的實現調用,我這里就不累述了。
5.配置說明
- 5.1.輸出格式含義
%c category;
%d 日期;日期可以進一步的設置格式,用花括號包圍,例如%d{%H:%M:%S,%l} 或者 %d{%d %m %Y %H:%M:%S,%l}。如果不設置具體日期格式,則如下默認格式被使用“Wed Jan 02 02:03:55 1980”。日期的格式符號與ANSI C函數strftime中的一致。但增加了一個格式符號%l,表示毫秒,占三個十進制位。
%m 消息;
%n 換行符,會根據平台的不同而不同,但對於用戶透明;
%p 優先級;
%r 自從layout被創建后的毫秒數;
%R 從1970年1月1日0時開始到目前為止的秒數;
%u 進程開始到目前為止的時鍾周期數;
%x NDC。 - 5.2.輸出形式列表
log4cpp::IdsaAppender // 發送到IDS或者
log4cpp::FileAppender // 輸出到文件
log4cpp::RollingFileAppender // 輸出到回卷文件,即當文件到達某個大小后回卷
log4cpp::OstreamAppender // 輸出到一個ostream類
log4cpp::RemoteSyslogAppender // 輸出到遠程syslog服務器
log4cpp::StringQueueAppender // 內存隊列
log4cpp::SyslogAppender // 本地syslog
log4cpp::Win32DebugAppender // 發送到缺省系統調試器
log4cpp::NTEventLogAppender // 發送到win 事件日志
6.總結
log4cpp的日志庫是一個非常棒的三方開源項目,新版本對系統結構有了一個全新的設計。
