异步 LOG 库 quill 安装手册

作者: , 共 1673 字 , 共阅读 0

先编译 libfmt.a :

cd ~/3rd;
git clone https://github.com/fmtlib/fmt.git && cd fmt

rm _build -rf;
mkdir _build -p 
cd _build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/ -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE

make -j$(nproc)
make install

再编译 quill ,需要先下载源文件:

cd ~/3rd;
git clone https://github.com/odygrd/quill
cd quill

在编译之前,我喜欢将 LOG 的级别显示我更喜欢的。QUILL 默认 LOG 级别为 TRACE_L3, TRACE_L2, TRACE_L1, DEBUG, INFO, WARNING, ERROR, CRITICAL ,我喜欢 ALL, DETAIL, TRACE, DEBUG, INFO, WARNING, ERROR, FATAL。这需要修改 `quill/src/LogLevel.cpp 的 log_levels_map 变量:

 std::string_view loglevel_to_string(LogLevel log_level)
 {
   static constexpr std::array<std::string_view, 11> log_levels_map = {
-    {"TRACE_L3", "TRACE_L2", "TRACE_L1", "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL",
+    {"ALL", "DETAIL", "TRACE", "DEBUG", "INFO", "WARNING", "ERROR", "FATAL",
      "BACKTRACE", "NONE", "DYNAMIC"}};

继续编译:

rm _build -rf;
mkdir _build -p
cd _build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/  -DQUILL_FMT_EXTERNAL=ON -DCMAKE_PREFIX_PATH=/opt/lib/cmake/fmt/ -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE 
make install

编译出的库文件是 /opt/lib/libquill.a。下面方法会编译动态链接库:/opt/lib/libquill.so。

rm _build -rf
mkdir _build -p
cd _build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/  -DQUILL_FMT_EXTERNAL=ON -DCMAKE_PREFIX_PATH=/opt/lib/cmake/fmt/ -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE -DCMAKE_WINDOWS_EXPORT_ALL_SYMBOLS=TRUE -DBUILD_SHARED_LIBS=ON

make install

如果使用动态链接库,需要在引入 Quill.h之前定义或在编译参数里添加宏 QUILL_BUILD_SHARED

Q. E. D.

类似文章:
编程 » C++, fmt
最近遇到一个诡异的问题,一个程序经常卡死。最后定位到 fmt 和下面简单的例子:
编程 » C++, 异步
C++11 的标准异步库至少包含下面内容:
相似度: 0.109
boost是除std外最常用的 C++库,覆盖很多常用操作。目前最新的版本是1.85.0http://boost.org/上可以查看最新版本号,将下面的 59 换成最新的即可)。
编程 » C++, 编译
一个典型的 GCC C++编译过程为:
编程 » C++, fmt
C++的fmt::format格式化库,由于效率高,功能强大,相关的 API 已经进入C++20,但其文档和 API 细节无法恭维。
相似度: 0.103
编程 » pytorch, C++
目前 pytorch 已经升级到了 1.7.0 ,但在 ubuntu 20.04 下有一个非常诡异的 bug。为此,我们只能自己编译。
相似度: 0.091
编程 » C++, GCC, 编译链接
C++的链接分为两部分,一个是编译时,一个是运行时。但运行时的行为也收到编译参数的影响。
相似度: 0.086
IT » talib, 技术分析
下面的安装地址可在https://github.com/mrjbq7/ta-lib#troubleshooting上找最新的:
相似度: 0.085
armadillo是一个线性代数 C++库,封装了blaslapack,提供更直观的接口。
这条路线是下周西山马拉松越野跑的亲子线路。我们原计划从玉皇顶停车场出发,但停车不便,于是改为在西山贰号院集合启程。从好汉坡开始,经防火道转左,沿线行进至挂甲塔,再绕防火道返回起点。全程 7 公里,包括 2 公里的爬升(高程近 500 米,重点集中在陡峻的好汉坡)及 5 公里缓坡下行。这个急升缓降的路线,既考验爬山技能又对膝盖较为友好。该路线半天时间已足够,离城区也不远,是徒步的好选择。
翠云山银河滑雪场是崇礼的一个小滑雪场,不过对新手比较友好,它的处女座滑雪道是一条从最高处平缓下坡的初级道,将近 2000 米长。而且它的索道比较新,一半吊椅,一半轿厢。初学者可以坐轿厢上下。