c++ - 要流式传输的格式化字符串

标签 c++ logging stream string-formatting

我确定我不是第一个遇到这种情况的人,但是,无论是在这里还是一般情况下,都找不到任何具体的内容。

我正在使用一个旧的记录器,它使用 printf 格式...例如:

LOG_ERROR("Error Code: %d. Additional data %s", error.ID, error.serialize());

并希望迁移到流式记录器。例如:

LOG_ERROR("Error Code: " << error.ID << "Additional data: " << error.serialize());

当然,代码库很大,我想自动化它。我想我可以想出一个脚本来完成它,但它看起来并不那么微不足道……我相信有一个非常简单的方法。 谢谢!

最佳答案

我不敢自动执行该任务。 您可以将所有旧的 LOG_ERROR 重命名为(类似于)LOG_ERROR_FORMAT,让 LOG_ERROR_FORMAT 创建一个字符串并将其传递给新的 LOG_ERROR。

如果你真的想去做,我建议看一些 printf 实现来获得正确的解析

关于c++ - 要流式传输的格式化字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19425986/

相关文章:

c++ - 无法为 Oculus Rift 创建 OpenGL 交换纹理

c++ - 你如何在 XCode + C++ 中使用 std::vector?

java - Log4j FileAppender 创建空文件

c++ - TinyXML2 似乎没有正确加载我的文件?

c++ - Unresolved external 使用带有 copy-and-swap 的模板类

java - 我应该使用键/值数据库来存储我的 API 日志吗?

java - Thread.getStackTrace() 有多贵?

java - new一个File对象,即在磁盘中创建一个文件?

java - BufferedReader 中的标记和重置是什么?

java - 使用自定义词汇表将结果集流式传输为 RDF