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

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

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

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

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

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

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

BuildLog 字段 (JSON) LogEntry 字段 说明 备注
message textPayload 或 jsonPayload.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 中。