当前位置:首页 > 单片机 > 程序喵大人

大家应该都知道,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。


更多内容在 一个优质的C++学习圈 里,来一起钻研C++和Rust吧。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
关闭