2016-08-12 54 views
4

我希望能够在Google Cloud Log查看器中查看客户端错误。是否有可能从AngularJS应用程序创建日志条目,如果是这样的话?如何从AngularJS应用程序登录到Google Cloud Logging?

+0

不确定Google为什么没有将nodejs stackdriver插件移植到客户端。如果有人得到一个浏览器节点stackdriver与webpack和打字稿一起使用,请评论! – y3sh

回答

1

如果你真的想看到的日志查看器,错误要做到这一点就GCE或AWS EC2的办法是安装Stackdriver Logging agent,要么

转发端口已在代理中预配置。如果您选择使用日志文件,则必须编写自己的配置,将代理指向您的日志文件。

以上都是服务器端,所以您的客户端代码需要以某种方式将错误传输到服务器。也可以将转发端口暴露给客户端,但请参见下文。

另一种选择是使用Stackdriver Error Reporting API并从服务器或直接从您的客户端代码发布到那里。这样错误将出现在Stackdriver Error Reporting console而不是日志查看器中。

请记住,让客户端直接写入代理端口或错误报告API本质上是不安全的,因为相关端口/ API密钥必须暴露于互联网(所以条目可能被欺骗,攻击者可以,例如,用完你的配额)。

感谢您使用Google Stackdriver。

+0

感谢您的回答。我使用服务器解决方案创建了一个用于记录的REST API,并将其部署到代理已运行的node.js AppEngine实例。然后,只需要以Stackdriver JSON日志条目格式写入/var/log/app_engine/custom_logs/client.log.json即可。 –

+0

你是对的,这是一个解决方案。我发布了一个替代答案,可以帮助您摆脱这个代理AppEngine实例。 – Steren

3

Stackdriver错误报告是专门为应用程序错误而设计的,我鼓励您使用它而不是Stackdriver Logging来报告错误。

对于客户端错误报告,您需要使用带有API密钥的HTTP report API

我写了一个JavaScript库,以帮助您从客户端调用这个端点:https://github.com/GoogleCloudPlatform/stackdriver-errors-js

我没有利用角度应用测试它尚未(但a tracking issue此)。它被标记为实验性的,但应该已经相当稳定。如果遇到问题或希望提供帮助,欢迎您提供帮助

+0

通过stackdriver日志和“Stackdriver错误报告”报告错误有什么区别? – y3sh

+1

@ y3sh Stackdriver错误报告是一个崩溃报告解决方案:它不仅仅是一个条目列表,而且它将错误有意义地分组并追踪每个组的计数。 – Steren

相关问题