spdlog封装
时间: 2023-07-19 14:13:05 浏览: 142
spdlog日志封装类
spdlog是一个快速、可扩展、跨平台的C++日志库,支持多线程、异步日志记录和灵活的日志格式化方式。以下是一个简单的spdlog封装的示例代码:
```c++
#include <spdlog/spdlog.h>
class Logger {
public:
static Logger& instance() {
static Logger logger;
return logger;
}
template<typename... Args>
void info(const char* fmt, const Args&... args) {
spdlog::info(fmt, args...);
}
template<typename... Args>
void warn(const char* fmt, const Args&... args) {
spdlog::warn(fmt, args...);
}
template<typename... Args>
void error(const char* fmt, const Args&... args) {
spdlog::error(fmt, args...);
}
private:
Logger() {
// 初始化spdlog日志器
spdlog::set_pattern("[%Y-%m-%d %H:%M:%S.%e] [%^%l%$] %v");
spdlog::set_level(spdlog::level::debug);
}
};
int main() {
// 使用Logger类记录日志
Logger::instance().info("Hello, {}!", "world");
Logger::instance().warn("Warning: {} is empty!", "file");
Logger::instance().error("Error: {} not found!", "config");
return 0;
}
```
在这个示例代码中,Logger类是一个单例模式,提供了info、warn和error三个方法用于记录不同级别的日志。在Logger类的构造函数中,初始化了spdlog日志器的格式化方式和日志级别。在main函数中,通过Logger::instance()方法获取Logger类的单例对象,然后调用其方法记录日志。
阅读全文