格式化字符串流

时间:2013-10-17 11:52:13

标签: c++ logging stream string-formatting

我确信我不是第一个遇到这种情况的人,但是,在这里或一般情况下都找不到任何具体的信息。

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

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

并希望转向流式记录器。 e.g:

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

当然,代码库很大,我想自动执行此操作。我想我可以想出一个可以实现它的脚本,但它看起来并不那么简单......我确信这是一个非常简单的方法。 谢谢!

1 个答案:

答案 0 :(得分:1)

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

如果您真的想要这样做,我建议您查看一些printf实现以获得正确的解析