问题描述
如果在golang library instructions之后使用客户端库编写日志,在开发过程中本地运行服务器时(例如通过 就我而言(不确定是否相关),我正在将该库用作appengine中golang逻辑的一部分,甚至relevant-looking instructions on "viewing logs" for those docs也没有明确提及本地开发。是因为它(运行go run main.go
)在哪里可以看到这些日志?
gcloud app logs tail
并查看本地服务器日志)应该“正常工作”还是因为无法查看本地日志sdk交互的日志?
解决方法
这是一个很好的问题,Cloud Logging库似乎确实绑定到Google的Cloud Logging服务,但是,对于本地开发(您的问题)以及松耦合(通常是一个很好的原则),这些库确实应该是可插入的。为什么服务不应在例如GCP路由日志到AWS?
通过OpenTelemetry(nee OpenCensus),Google(及其他公司)提高了将度量标准和跟踪生产与消费服务断开连接的能力,日志没有明显不同。
Go中流行的日志记录库Logrus支持通过Hooks进行可插入日志记录,并且存在旧的(!)Stackdriver Logging实现;升级到当前的API(版本)应该很简单。
同时,我想将您的问题发布到Google的Stackdriver Log(link)公共问题跟踪器中会有所帮助,我将问一个非常熟悉Cloud Logging的人对我们有一些了解。
更新
我给Google的一些前同事发了电子邮件,了解到Open Telemetry最终将包含日志记录。在项目的About页上有简短提及。
, tl; dr 暂时回答:不支持-相反,如果env(例如,空GAE_INSTANCE
env变量)表明您在在本地主机上。
遍历日志记录包上NewClient(...)
调用下的代码,我最终发现了一个真正被调用上游API的地方(请注意rpc context used by the very last turtle-在遍历的过程中我从未见过逻辑似乎正在切换到本地开发的东西),所以我怀疑确实没有仿真捕获。