凡亿专栏 | Boost:初体验,Log模块的编译与使用
Boost:初体验,Log模块的编译与使用

大家应该都知道,Boost是个准标准库,一般Boost里比较先进的模块可能会进下一代的C  标准。


因为我最近在开发Log相关的功能,所以业余时间也在看看市面上的Log模块是怎么设计的。


关于Log,想必大多数C  开发都在使用glog或者spdlog,最近我发现Boost中也有个Log模块,于是看了看,发现功能好强大。


Log模块整体设计如图:

图片来源于:https://www.boost.org/doc/libs/1_79_0/libs/log/doc/html/log/design.html


图中可以发现,整个log的模块划分了多层架构,source、core、sink。

可以配置多个source,还可以配置多个sink。


直接看下它的编译与使用:

首先去boost官网https://github.com/boostorg/boost下载源码。

之后执行bootstrap.sh脚本后会生成b2可执行程序,执行./b2 再install就ok。


那想单独使用Log模块怎么办,这里拿example里的main.cpp举例:

可以使用这个命令来编译:


clang   -std=c  11 -DBOOST_LOG_DYN_LINK main.cpp -lboost_log -lpthread -lboost_log_setup -lboost_thread -lboost_system


然后再执行:


大家最好对照着示例代码:https://github.com/boostorg/log/blob/fa675cca2b58d6c087fc63de56e894fa7fb607f3/example/advanced_usage/main.cpp


如果自己项目中想使用Log的话,个人认为可以在spdlog或者Boost中二选一,如果仅使用log,而不使用其他功能,可以使用spdlog。如果项目中本身就依赖了Boost,可以考虑直接使用boost中的log。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表凡亿课堂立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。
相关阅读
进入分区查看更多精彩内容>
精彩评论

暂无评论