如何停止使用 protobuf3 打印错误消息“无法解析类型的消息,因为它缺少必填字段”

Posted

技术标签:

【中文标题】如何停止使用 protobuf3 打印错误消息“无法解析类型的消息,因为它缺少必填字段”【英文标题】:How can I stop printing the error message "Can't parse message of type because it is missing required fields" with protobuf3 【发布时间】:2018-08-16 02:28:44 【问题描述】:

我只想在记录某些内容时从字符串中解析一个实例,而不关心结果。

但是当我将 protobuf 更新到 3.5.0 时,烦人的消息总是打印到终端(stderr):

“无法解析类型的消息,因为它缺少必填字段”

它的字段必须是必需的。

如何停止打印错误信息?

【问题讨论】:

【参考方案1】:

选项:

使用optional 而不是required 提供缺失的数据 钩住stderr并发送给nul

【讨论】:

【参考方案2】:

据我所知,protobuf 库本身并不直接打印到 stderr。相反,错误消息通过 API 返回,例如message->InitializationErrorString()

看来是您自己的代码将此消息打印到 stderr,或者您可能启用了某些调试模式。

您可以尝试将调试器挂钩添加到打印以查看它的来源。

【讨论】:

以上是关于如何停止使用 protobuf3 打印错误消息“无法解析类型的消息,因为它缺少必填字段”的主要内容,如果未能解决你的问题,请参考以下文章

十五.ProtoBuf3的基础总结

停止 TensorFlow 打印警告消息

四.Protobuf3 缺省值

tomcat启动进程突然停止无错误日志输出

从显示错误中删除“无错误”输出

如何更改默认打印机