虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

您现在的位置是:首页 > 技术阅读 >  Boost:初体验,Log模块的编译与使用

Boost:初体验,Log模块的编译与使用

时间:2024-02-15

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