spdlog如何配置文件大小轮转?
时间: 2024-10-22 17:15:22 浏览: 34
日志输出库spdlog
在spdlog中配置文件大小轮转通常通过`RotatingFileSink`实现,这是一个用于处理滚动和替换日志文件的sink。以下是一个基本的例子:
```cpp
#include <spdlog/spdlog.h>
#include <spdlog/sinks/rotating_file_sink.h>
// 创建一个logger实例
auto logger = spdlog::stdout_color_mt("my_logger");
// 定义一个RotatingFileSink,设置基础日志文件名、最大文件大小、以及保留的最大日志数
auto formatter = fmt::formatter();
auto sink = std::make_shared<spdlog::sinks::rotating_file_sink_mt>("my_log", 1024 * 1024, 5, formatter); // 每1MB存储文件,最多保留5个备份
// 将新的sink添加到logger中
logger->add_sink(sink);
// 日志记录
logger->info("This is an example log message.");
```
在这个例子中,当`my_log.log`超过1MB时,它会被压缩并重命名为`my_log.1.log`,同时一个新的`my_log.log`会开始记录。这个过程会继续,每次增加1MB,直到达到最大保留的文件数(这里是5个)。当达到最大保留文件数时,最老的文件将会被移除。
请注意,具体的配置可能因项目的实际需求而有所不同,比如可以选择不同的文件扩展名、备份策略等。
阅读全文