要流式传输的格式化字符串

formatted string to stream

本文关键字:格式化 字符串 传输      更新时间:2023-10-16

我敢肯定我不是第一个遇到这种情况的人,但在这里和一般情况下都找不到任何具体的东西。

我正在使用一个旧的记录器,它使用 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实现以获得正确的解析