将结构化日志记录与 build 日志搭配使用

本文档介绍了如何配置 Cloud Build 日志,以便在 Cloud Logging 中与结构化日志记录搭配使用。

借助结构化日志记录,您可以将 JSON 格式的 build 日志字段存储在 LogEntryjsonPayload 字段中,也可以将其存储为某些其他字段。您可以设置 build 配置文件,以便在将 build 日志发送到 Logging 时,以这种方式映射特定 build 日志字段。

例如,如果 build 日志包含 message,则消息会显示在生成的日志条目的 textPayloadjsonPayload.message 中。如果 build 日志字段无法映射到特定的日志条目字段,则 build 日志字段会存储在日志条目 jsonPayload 中。

将 build 日志字段映射到日志条目字段

如需在 build 日志中启用字段映射,请将 BuildOptions 字段 enableStructuredLogging 设置为 TRUE

下表显示了与日志条目字段对应的 build 日志字段:

BuildLog 字段 (JSON) LogEntry 字段 说明 备注
message textPayloadjsonPayload.message 可让您设置日志消息

必须是字符串。

如果 build 日志仅包含可映射的字段,则消息会显示在 textPayload 中。否则,该消息会显示在 jsonPayload.message 中。

如果 build 日志包含多个步骤,则步骤标识符会显示在消息开头。

severity severity 可让您设置日志严重级别。 必须是 LogSeverity 的枚举。

以下 build 日志字段无法映射,如果它们出现在 build 日志中,将从日志条目中移除:

  • httpRequest
  • logging.googleapis.com/insertId
  • logging.googleapis.com/labels
  • logging.googleapis.com/operation
  • logging.googleapis.com/sourceLocation
  • logging.googleapis.com/spanId
  • logging.googleapis.com/trace
  • logging.googleapis.com/trace_sampled
  • time
  • timestamp
  • timestampSeconds
  • timestampNanos

所有其他 build 日志字段都将显示在日志条目的 jsonPayload 中。