log4cplus使用 二 自定義日誌等級

2021-09-08 18:36:39 字數 978 閱讀 7554

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...