0

我有大量使用 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());

这样做的最佳主意是什么?非常感谢!!!

4

1 回答 1

0

这里发布了正确的答案 https://github.com/gabime/spdlog/issues/1804

于 2021-02-02T08:03:29.740 回答