Boost:初體驗(yàn),Log模塊的編譯與使用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
大家應(yīng)該都知道,Boost是個(gè)準(zhǔn)標(biāo)準(zhǔn)庫,一般Boost里比較先進(jìn)的模塊可能會(huì)進(jìn)下一代的C++標(biāo)準(zhǔn)。
因?yàn)槲易罱陂_發(fā)Log相關(guān)的功能,所以業(yè)余時(shí)間也在看看市面上的Log模塊是怎么設(shè)計(jì)的。
關(guān)于Log,想必大多數(shù)C++開發(fā)都在使用glog或者spdlog,最近我發(fā)現(xiàn)Boost中也有個(gè)Log模塊,于是看了看,發(fā)現(xiàn)功能好強(qiáng)大。
Log模塊整體設(shè)計(jì)如圖:
圖片來源于:https://www.boost.org/doc/libs/1_79_0/libs/log/doc/html/log/design.html
圖中可以發(fā)現(xiàn),整個(gè)log的模塊劃分了多層架構(gòu),source、core、sink。
可以配置多個(gè)source,還可以配置多個(gè)sink。
直接看下它的編譯與使用:
首先去boost官網(wǎng)https://github.com/boostorg/boost下載源碼。
之后執(zhí)行bootstrap.sh腳本后會(huì)生成b2可執(zhí)行程序,執(zhí)行./b2 再install就ok。
那想單獨(dú)使用Log模塊怎么辦,這里拿example里的main.cpp舉例:
可以使用這個(gè)命令來編譯:
clang++ -std=c++11 -DBOOST_LOG_DYN_LINK main.cpp -lboost_log -lpthread -lboost_log_setup -lboost_thread -lboost_system
然后再執(zhí)行:
大家最好對(duì)照著示例代碼:https://github.com/boostorg/log/blob/fa675cca2b58d6c087fc63de56e894fa7fb607f3/example/advanced_usage/main.cpp
如果自己項(xiàng)目中想使用Log的話,個(gè)人認(rèn)為可以在spdlog或者Boost中二選一,如果僅使用log,而不使用其他功能,可以使用spdlog。如果項(xiàng)目中本身就依賴了Boost,可以考慮直接使用boost中的log。
更多內(nèi)容在 一個(gè)優(yōu)質(zhì)的C++學(xué)習(xí)圈 里,來一起鉆研C++和Rust吧。





