0

我正在尝试将我的错误日志写入来自 golang appengine 应用程序的堆栈驱动程序错误报告

在 goroutine 中,我执行以下操作

fmt.Fprintf(os.Stderr, "%s %s %s", name, kind, err.Error())

我在堆栈驱动程序日志记录中看到错误

但我在堆栈驱动程序错误报告中没有任何警报,来自谷歌文档

写入 stderr 的错误日志由 Error Reporting 自动处理,无需直接使用 Go 的 Error Reporting 包。

你知道为什么我的错误没有显示在错误报告中吗?

4

2 回答 2

2

日志格式应正确。您需要使用 GCP 日志库:“cloud.google.com/go/logging”。

此处的其他详细信息:https ://cloud.google.com/logging/docs/setup/go 。

于 2019-12-06T10:02:01.387 回答
0

关于接收错误报告中的错误条目的通知,您是否可以通过转到 [Google Cloud Console] > [错误报告] > 确认通知确实已启用 > 应该有一个框说:[发生新错误时收到通知在这个项目中。] 如果您的通知已关闭。

关于文档引用的内容:

写入 stderr 的错误日志由 Error Reporting 自动处理,无需直接使用 Go 的 Error Reporting 包。

预期的行为是错误报告会将写入 stderr 的任何内容作为错误拾取,但不会“捕获”所有内容以进行存储和分析。

但是,如本文档中所述,

只有在代码错误的堆栈跟踪中发生错误时,错误报告才会提供条目。

因此,错误应该来自您的应用程序代码本身,而不是来自 Google App Engine,并且此错误将显示在错误报告中。

我建议您使用Go 的错误报告客户端库(可能是无需自己构建报告系统的唯一方法),如文档中所述,对报告的错误启用通知。设置页面提供了开始使用客户端库的所有步骤,还提供了有关向仪表板报告的代码示例。这些条目将显示在错误报告仪表板页面中。

此外,在我的调查过程中,我遇到了一个Public Issue,即使涉及 Python,它也可能是相关的。

此外,请注意,错误报告是每个文档的测试版问题,因此您应该注意,此功能不包含在任何 SLA 或弃用政策中,并且可能会受到向后不兼容的更改的影响。

我希望这个信息对您有所帮助。

于 2019-12-17T15:45:20.863 回答