写入和查看日志

本页面介绍了适用于 App Engine 应用的日志,以及如何写入和查看日志条目。

App Engine 收集两种类型的日志:

  • 请求日志:发送到应用的请求的日志。App Engine 会自动在请求日志中创建条目。

  • 应用日志:您按照本页所述写入受支持的框架或文件的日志条目。

App Engine 会自动将这些日志发送到 Cloud Logging 代理,您可以在日志查看器中、命令行上或以编程方式查看这些日志。

写入应用日志

要写入日志条目,我们建议您将 Bunyan 或 Winston 插件与 Cloud Logging 集成。此方法支持 Cloud Logging 的全部功能,并且只需几行 Google Cloud 专用代码即可。

如需查看说明和代码示例,请参阅设置 Node.js 版 Cloud Logging

替代方案:将结构化日志写入 stdoutstderr

如果不使用推荐的方法,可以向 stdoutstderr 发送简单的文本字符串。这些字符串将在日志浏览器、命令行和 Cloud Logging API 中显示为消息,并与发出它们的 App Engine 服务和版本相关联。

如果要在日志浏览器中按严重级别过滤这些字符串,需要将其格式设置为结构化数据。如需了解详情,请参阅结构化日志记录

如果想将应用日志中的条目与请求日志相关联,您的结构化应用日志条目需要包含请求的跟踪标识符。您可以从 X-Cloud-Trace-Context 请求标头中提取跟踪标识符。在结构化日志条目中,将 ID 写入名为 logging.googleapis.com/trace 的字段。如需详细了解 X-Cloud-Trace-Context 标头,请参阅强制跟踪请求

请参阅 Cloud Run 文档中写入带有跟踪 ID 的结构化日志条目的示例。您可以在 App Engine 应用中使用相同的方法。

查看日志

您可以使用日志浏览器查看您的应用和请求日志:

  1. 转到 Google Cloud 控制台中的日志浏览器

    转到日志浏览器

  2. 在页面顶部选择一个现有 Google Cloud 项目。

  3. 从下拉菜单中选择 GAE 应用作为您的资源类型。

  4. 如需查看哪些应用日志条目与请求日志条目相关联,请执行以下操作:

    1. 从过滤器菜单中选择 httpRequest.requestUrl 日志。

    2. 展开请求日志条目。与该请求相关的应用日志会嵌套显示在请求日志条目下方。

    如果您向标准输出发送简单文本条目,则无法使用日志查看器按严重程度过滤应用条目,也无法查看与特定请求对应的应用日志。您仍然可以在日志浏览器中使用其他类型的过滤,例如文本和时间戳。

您可以按 App Engine 服务、版本和其他条件过滤日志浏览器。您还可以在日志中搜索特定条目。如需了解详情,请参阅使用日志浏览器

使用命令行查看日志

如需从命令行查看 App Engine 日志,请使用以下命令:

gcloud app logs tail

如需了解详情,请参阅 gcloud app logs tail

以编程方式读取日志

如果要以编程方式读取日志,可以使用以下方法之一:

价格、配额和日志保留政策

如需了解适用于请求和应用日志的价格信息,请参阅 Cloud Logging 的价格

如需了解日志保留政策和日志条目大小上限,请参阅配额和限制。如果您需要将日志存储更长时间,可以将日志导出至 Cloud Storage。您还可以将日志导出到 BigQuery 和 Pub/Sub,以供进一步处理。

管理日志资源使用情况

您可以通过从应用的代码写入更多或更少的条目,控制应用日志记录活动的量。系统会自动创建请求日志,以便管理与应用关联的请求日志条目数。请使用 Cloud Logging 中的日志排除功能。

已知问题

有时,应用日志条目与请求日志无关。当您的应用第一次收到请求时,以及 App Engine 在其他任何时间向应用的日志写入状态消息时,就会发生这种情况。如需了解详情,请访问 https://issuetracker.google.com/issues/138365527