我希望能够在 Google Cloud Log 查看器中查看客户端错误。是否可以从 AngularJS 应用程序创建日志条目,如果可以,如何创建?
2 回答
Stackdriver Error Reporting 专为应用错误而设计,我鼓励您使用它而不是 Stackdriver Logging 来报告错误。
对于客户端错误报告,您需要使用带有 API 密钥的HTTP reportAPI 。
我编写了一个 JavaScript 库来帮助您从客户端调用此端点:https ://github.com/GoogleCloudPlatform/stackdriver-errors-js
我还没有使用 Angular 应用程序对其进行测试(但有一个跟踪问题)。它被标记为实验性的,但应该已经相当稳定了。如果您遇到问题或想提供帮助,欢迎您的贡献
如果您真的想在日志查看器中查看错误,在 GCE 或 AWS EC2 上执行此操作的方法是安装Stackdriver Logging 代理,然后
- 将您的日志消息作为 JSON 写入端口 24224(请参阅in_forward 文档)
或者
- 将您的日志写入磁盘并告诉代理查看这些文件(请参阅in_tail 文档)。
转发端口已在代理中预先配置。如果您选择使用日志文件,则必须编写自己的配置,将代理指向您的日志文件。
以上两者都是服务器端的,因此您的客户端代码需要以某种方式将错误传输到服务器。也可以向客户端公开转发端口,但请参见下文。
另一种选择是使用Stackdriver Error Reporting API并从服务器或直接从您的客户端代码发布到那里。这样,错误将出现在Stackdriver 错误报告控制台中,而不是日志查看器中。
请记住,让客户端直接写入代理端口或错误报告 API 本质上是不安全的,因为相关的端口/API 密钥必须暴露给互联网(因此条目可以被欺骗,攻击者可以,例如,用完你的配额)。
感谢您使用 Google Stackdriver。