gpt4 book ai didi

go - Zap 堆栈跟踪与谷歌云上的错误消息

转载 作者:数据小太阳 更新时间:2023-10-29 03:12:55 28 4
gpt4 key购买 nike

我正在使用 zapp 在谷歌云上托管的服务上记录错误消息,我看到虽然成功记录了错误,但存储在谷歌云日志“消息”字段中的文本是堆栈跟踪,并且不是我记录的错误消息。

示例代码:

var log *zap.Logger
if err := doStuff(); err != nil {
log.Error(<error message I want to log>, zap.Error(err))
}

除了谷歌云日志记录和堆栈驱动程序将使用调用结构化日志的 message 字段中的 zap.Error 捕获的堆栈跟踪外,这工作得很好。我定义的消息出现在 msg 字段中,但前者似乎是主要显示在日志记录控制台中并被 stackdriver 用于索引错误的消息。

这意味着当通过控制台浏览日志和错误时,我只能看到堆栈跟踪,而没有相关错误字符串的指示。

棘手的是我不知道这个“问题”是云端还是 zapp 端。我花了一些时间在 Zapp 中四处挖掘但无济于事,而且我没有想法。

最佳答案

zap 默认情况下将消息放在 msg 键下,堆栈跟踪放在 stacktrace 下,并将日志行作为 json 打印到 stdout。您应该能够通过在本地运行您的二进制文件来实际看到这一点。

您的日志系统可能会在打印这些日志行时对其进行处理。它将读取它们、解析它们,并可能进行一些重组或添加一些元数据,然后将它们发送到其他地方以进行保存或处理。

由于 zap 很可能按预期工作,您需要查看处理日志的系统。它希望他们看起来如何?它对任何特定键有特殊规则吗?它会注入(inject)自己的任何 key 吗?

请注意,您可以将 zap 配置为其所有标准字段使用不同的键。

关于go - Zap 堆栈跟踪与谷歌云上的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46283090/

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