gpt4 book ai didi

c++ - 如何更改 protobuf 日志记录行为(分隔符)?

转载 作者:行者123 更新时间:2023-11-28 06:05:19 25 4
gpt4 key购买 nike

我在 protobuf 消息上使用 ShortDebugString() 来获取字符串并将其记录到文件中。此函数返回以“:”作为分隔符的简明版本。从 protobuf 代码看,它似乎发生在 TextFormat::Printer::PrintField 中。

generator.Print(": ");
// Write the field value.
PrintFieldValue(message, reflection, field, field_index, generator);

我想将 ShortDebugString 返回的字符串中的 ':' 更改为 '='。如何在不更改 protobuf 库代码本身的情况下完成此操作?从 ShortDebugString 取回字符串后,我可以用“=”替换“:”,但我也希望避免这种情况。谢谢。

最佳答案

最好的办法是复制整个 TextFormat 类并修改它。 TextFormat 代码不使用任何私有(private) protobuf API,因此将它移出核心库应该没有问题。事实上,TextFormat 的部分设计目的是作为一个示例,说明您可以如何为替代文本格式编写自己的编码器,这听起来正是您在这里想要的。 :)

关于c++ - 如何更改 protobuf 日志记录行为(分隔符)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32497054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com