在上篇中已經介紹了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 messagelog檔案輸出
理解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...