我想将多个 log.info
log.warning
和 log.error
调用以及可能的堆栈跟踪聚合到一个服务器与我的应用程序代码交互生成的单个 Stackdriver 日志行。目标是总结我的 Scala 服务器处理的请求,然后将其执行期间发生的尽可能多的日志语句(包括任何错误)分组。
这是 GAE 日志记录的默认行为,但因为我刚开始阅读 Java API's ,我无法弄清楚如何:
1/创建一个自定义 MonitoredResource
(?) 表示“API 服务器”,然后指定其中的类别(例如“生产”)。具体来说,我是否必须通过 REST API 创建这些,即使我只为部署执行一次?我可以使用类似 Troposphere 的东西吗?在代码中定义它们并将它们提交到存储库中?
2/名词 MonitoredResource
、MonitoredResourceDescriptor
、LogEntry
、LogEntryOperation
和 logName
的用法code> 组合在一起,定义类别“API Server”和“生产”,以及可以添加像 GET/foobar -> 200 response + 1834 bytes
这样的日志语句组(是那些日志名称?)。
当然,不需要为我编写代码,但如果能提供指导和高级概述来帮助我避免反复试验,我将不胜感激。
最佳答案
您可以使用 LogEntry ( https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry#LogEntryOperation ) 中的 LogEntryOperation 字段将同一操作的多个日志条目分组在一起。
在日志查看器中,您可以通过使用高级过滤器对 operation.id
字段进行过滤来对日志条目进行分组。
在 Java 客户端库中,您可以使用 https://googlecloudplatform.github.io/google-cloud-java/0.33.0/apidocs/com/google/cloud/logging/LogEntry.Builder.html#setOperation-com.google.cloud.logging.Operation- 设置操作 ID
1) 您可以使用的受监控资源是由 Google 定义的精选集。您无法定义自己的类型。 https://cloud.google.com/logging/docs/api/v2/resource-list 中列出了支持的资源。 .
2) 基本概念在https://cloud.google.com/logging/docs/basic-concepts中描述。 .
关于java - 如何使用 Java 客户端库将分类和分组的日志发送到 Stackdriver?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48575364/