Poco Logger 日誌庫使用示例(中)

2021-08-19 13:26:55 字數 2195 閱讀 5878

在上篇中已經介紹了loger的使用的大體的步驟,下面將引入實際的例子在來理解

/* 1.獲取 root logger */

auto &logger = poco::logger

::root();

/* 2.設定管道 */

/* 2.1 建立控制台管道 */

poco::autoptr

<:consolechannel>

> console_channel(new poco::consolechannel);

/* 2.2 建立檔案管道 */

autoptr file_channel(new filechannel);

file_channel->setproperty("rotation" ,"10m"); //日誌檔案的旋轉模式

file_channel->setproperty("archive" ,"timestamp"); //日誌檔案的歸檔模式

file_channel->setproperty("path",switchfilename("nut"));

/* 2.3 建立 formatter */

// 關於格式化控制符的說明可以參見 patternformatter.h 中的描述

poco::autoptr

<:patternformatter>

> patternformatter(

new poco::patternformatter("[%y-%m-%d %h:%m:%s] [%u(%u)] %p: %t"));

patternformatter->setproperty("times", "local"); // 格式化中的時間顯示為本地時間

/* 2.4 建立 splitterchannel */

autoptr splitter_channel(new splitterchannel);

splitter_channel->addchannel(file_channel);

splitter_channel->addchannel(console_channel);

/* 2.5 建立 formatting channel */

poco::autoptr

<:formattingchannel>

> formattingchannel(

new poco::formattingchannel(patternformatter, splitter_channel));

/* 2.6 將 formatting channel 設定給 logger */

poco::logger

::root().setchannel(formattingchannel);

/* 3.列印日誌 */

poco_error(logger, "this is an error message");

控制台輸出

[2018-04-28 22:24:] [mylogger.cpp(130)] error: this is an error message

log檔案輸出

理解logger 庫的最核心一點就是看懂logger庫的層次結構,這種設計方式很好的實現解耦,並且層次結構分明,非常值得學習

上面只是通過簡單的例子來了解和如何去使用logger

我將在下篇中,將對poco::logger 進行封裝,講述在整合框架中如何來使用日誌。

敬請期待…

Poco Logger 日誌庫使用示例(上)

引言 日誌對於程式來說是非常重要的,特別是對一些大型程式而言。一旦程式被發布,在現場日誌幾乎是程式設計師唯一可以獲取程式資訊的手段。poco使用poco message 物件儲存和傳遞日誌資訊。include poco message.h 日誌訊息 message 包括 此處只列出乙個,具體檢視文件...

如何使用Google日誌庫

google glog 是乙個c 語言的應用級日誌記錄框架,提供了 c 風格的流操作和各種助手巨集。1 開源專案首頁已經從遷移到 4 不需要更改工程屬性。平台工具集是否是windows xp v140 xp 好像並不影響。glog不支援unicode寬字符集,工程屬性字符集保持多位元組字符集。c c...

開源日誌庫Logger的使用

日誌對於開發來說是非常重要的,不管是除錯資料檢視 bug問題追蹤定位 資料資訊收集統計,日常工作執行維護等等,都大量的使用到。logger庫能提供的功能 執行緒資訊 類資訊方法資訊 漂亮的json內容列印 漂亮列印新行 n 清潔輸出 跳轉到源新增依賴 compile com.orhanobut lo...