spdlog在多个cpp中使用
时间: 2024-05-05 10:17:40 浏览: 7
要在多个cpp文件中使用spdlog,需要做以下几个步骤:
1. 在每个cpp文件中都包含spdlog的头文件,例如:
```c++
#include "spdlog/spdlog.h"
```
2. 在某一个cpp文件中初始化spdlog的logger,例如:
```c++
#include "spdlog/spdlog.h"
void init_logger() {
spdlog::set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%^%l%$] %v");
// create console logger
auto console_logger = spdlog::stdout_color_mt("console");
console_logger->set_level(spdlog::level::debug);
// create file logger
auto file_logger = spdlog::basic_logger_mt("file", "log.txt");
file_logger->set_level(spdlog::level::trace);
file_logger->flush_on(spdlog::level::trace);
}
```
3. 在其他cpp文件中使用初始化后的logger,例如:
```c++
#include "spdlog/spdlog.h"
void do_something() {
auto logger = spdlog::get("console");
logger->info("doing something...");
}
```
注意,logger的名称必须与初始化时设置的名称相同。另外,如果需要在多线程环境中使用spdlog,需要使用spdlog的线程安全版本,例如:
```c++
#include "spdlog/spdlog.h"
void do_something() {
auto logger = spdlog::get_mt("console");
logger->info("doing something...");
}
```