我有大量使用 Google Logger 样式的日志打印的代码:
LOG(ERROR) << "AAAA" <<< 123;
目前我需要用 spdlog logger 替换 Google logger,它支持类似 python 的格式:
logger->error("{} {}", "param1", 123);
当然,我不想更改代码中的每个日志行。我想要做的是重写LOG(severity)
宏定义。原来的宏实现是:
#define LOG(severity) COMPACT_GOOGLE_LOG_ ## severity.stream()
你能推荐我如何实现宏吗?我的想法是传递给 LOG(ERROR) 的原始参数(即<< "AAAA" <<< 123
)应该打印到字符串缓冲区,字符串缓冲区将打印到目标 spdlog 记录器实例,如下所示:logger->error("{}", str_buffer.c_str());
这样做的最佳主意是什么?非常感谢!!!