使用 golang 日志库,在哪里可以看到本地主机日志?

using golang logging library, where does one see localhost logs?

golang library instructions 之后,如果您使用客户端库编写日志,那么当 运行 您的服务器在开发过程中本地时,在哪里可以看到这些日志(例如通过 go run main.go)?

在我的例子中(不确定它是否相关)我在 appengine 中将库用作 golang 逻辑的一部分,甚至 relevant-looking instructions on "viewing logs" for those docs 也没有明确提及本地开发。那是因为它(运行 gcloud app logs tail 并查看本地服务器日志)应该“正常工作”还是因为无法查看本地日志 sdk 交互的日志?

tl;dr 暂时回答自己:不支持 - 相反,如果 env(例如空 GAE_INSTANCE env 变量,则必须有条件地换出对常规记录器的调用) 表示您在本地主机上。

遍历 NewClient(...) 调用日志包下的代码,我最终发现上游 API 真正被调用的地方(注意 rpc context used by the very last turtle - 我从来没有当我走过时看到逻辑似乎正在切换到本地开发的东西),所以我怀疑真的没有仿真捕获。


编辑:参见

这是一个很好的问题,云日志库似乎绑定到 Google 的云日志服务,但是,对于本地开发(您的问题)和 loose-coupling 作为一个普遍的好原则,这些库真的应该是可插拔的。为什么不应该服务 运行 例如GCP 路由日志到例如亚马逊?

OpenTelemetry (nee OpenCensus)、Google(和其他人)一起提升了将指标和跟踪生产与消费服务断开连接的能力,并且日志没有明显不同。

一个流行的 Go 日志记录库,Logrus supports pluggable logging via Hooks and an old (!) Stackdriver Logging 实现已存在;这应该很容易升级到当前的 API(版本)。

同时,我认为将您的问题发布到 Google 的 public Stackdriver(原文如此)日志记录问题跟踪器(link)会有所帮助,我会询问非常熟悉 Cloud Logging 的人,因为她可能会为我们提供一些见解。

更新

我通过电子邮件与 Google 的一些前同事发送了电子邮件,了解到 Open Telemetry 最终将包含日志记录。项目的 About 页面上简要提到了这一点。