spdlog每次启动进程就新建文件
时间: 2023-08-06 18:02:57 浏览: 283
可以通过设置spdlog的basic_file_sink来实现每次启动进程就新建一个文件。具体步骤如下:
1. 导入头文件:`#include "spdlog/sinks/basic_file_sink.h"`
2. 创建basic_file_sink对象,设置日志文件名。例如:
```cpp
auto file_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("log.txt");
```
其中,日志文件名为log.txt。
3. 创建logger对象,将basic_file_sink对象添加到logger中。例如:
```cpp
auto logger = std::make_shared<spdlog::logger>("my_logger", file_sink);
```
4. 设置logger的全局格式和日志级别。例如:
```cpp
spdlog::set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%^%l%$] [thread %t] %v");
spdlog::set_level(spdlog::level::trace);
```
5. 使用logger进行日志输出。例如:
```cpp
logger->info("Hello, world!");
```
这样,每次启动进程时,spdlog都会自动创建一个新的日志文件,并将日志写入其中。如果需要在每次启动时清空之前的日志文件,可以在创建basic_file_sink对象时设置truncate参数为true。例如:
```cpp
auto file_sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("log.txt", true);
```
这样,每次启动进程时都会新建一个日志文件,并清空之前的日志内容。注意,这种方式会导致之前的日志信息丢失,不建议在生产环境中使用。
阅读全文