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>

4617

被折叠的 条评论
为什么被折叠?



