spdlog滚动日志以及编译加速

spdlog支持滚动日志。使得日志目录中每个日志文件大小固定,日志文件数量有最大值。当日志数量超过这些限制时,最早产生的日志会被丢弃。
spdlog的滚动日志中,编号最小的日志文件是最新的。当0号日志文件写满时,会把0号日志文件改名为1号。(如果1号日志文件存在,则 把1号日志文件变成2号,依次类推)。然后把新的日志写到0号文件中。目前这个策略不支持自定义成其他的。
是使用spdlog的是时候发现,include 了<spdlog/spdlog.h>头文件的.cpp文件总是编译的非常慢。但由于他是日志库,大量的源文件会使用它,所以如果它编译慢肯定是不能登上大堂的。通过项目的issue,我找到了解决方案,那就是在编译每个源文件时加上编译器宏定义 -DSPDLOG_COMPILED_LIB。有这个宏定义,spdlog才会使用库版本,否则使用的是仅头文件版本。每次都会重新编译spdlog。

下面写下我是如何使用spdlog的。
从github上下载spdlog库。

git clone https://github.com/gabime/spdlog.git

cd到spdlog工程目录。
新建一个build子目录
cmake …
make
就会在build目录得到一个libspdlog.a。然后把libspdlog.a和spdlog工程目录下的include文件夹一起复制到工程目录下。
把头文件的路径写进g++ 的-I参数中。把.a文件的路径写进 -L 参数中。然后-lspdlog。 -DSPDLOG_COMPILED_LIB

g++ main.cpp -I. -L. -lspdlog -DSPDLOG_COMPILED_LIB

把滚动日志设置为默认日志器。

#include<spdlog/spdlog.h>
#include<spdlog/sinks/rotating_file_sink.h>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值