log4cplus支援使用者自定義日誌等級,操作也比較簡單,使用之前貼如下巨集定義
#define log4cplus_macro_creash_log_level(pred) log4cplus_unlikely(pred)
namespace log4cplus
#define log4cplus_creash(logger, logevent) log4cplus_macro_body(logger, logevent, creash_log_level)
不過log4cplus沒有提供給使用者乙個介面來實現level值與字串的轉換,所以當帶格式
輸出loglevel字串時候會顯示"unknown", 不夠理想。比如用ttcclayout控制輸出的結果可能會如下所示:
10-17-04 11:17:51,124 [1075298944] unknown root <> - info
而不是期望的以下結果:
10-17-04 11:17:51,124 [1075298944] hello root <> - info
要想實現第二種結果,按照log4cplus現有的介面機制,只能改其源**後重新編譯,方法是在loglevel.cxx中加入:
#define _hello_string log4cplus_text("hello")
然後修改log4cplus::tstring defaultlogleveltostringmethod(loglevel ll)函式,增加乙個判斷:
case hello_log_level:
return _hello_string;
重新編譯log4cplus源**後生成庫檔案,再使用時即可實現滿意效果。如圖
圖 自定義日誌等級
參考文章
log4cplus庫(四)(優先順序與日誌配置)
log4cplus安裝測試
先介紹一下它的基本要素。layouts 布局器,控制輸出訊息的格式.如螢幕,檔案等等 logger 記錄器,儲存並跟蹤物件日誌資訊變更的實體,當你需要對乙個物件進行 記錄時,就需要生成乙個logger。categories 分類器,層次化 hierarchy 的結構,用於對被記錄資訊的分類,層次中 ...
開源日誌系統 log4cplus 二
本文介紹了使用log4cplus有六個步驟,並提供了一些例子引導你了解log4cplus的基本使用。基本使用 使用log4cplus有六個基本步驟 下面通過一些例子來了解log4cplus的基本使用。using namespace log4cplus using namespace log4cplu...
開源日誌系統log4cplus 二
本文介紹了使用log4cplus有六個步驟,並提供了一些例子引導你了解log4cplus的基本使用。基本使用 例1 using namespace log4cplus helpers int main m l n std auto ptr layout new patternlayout patte...