写入和查看日志

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

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

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

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

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

写入应用日志

要写入日志条目,我们建议您将标准 Python 日志记录模块与 Cloud Logging 集成。此方法支持 Cloud Logging 的全部功能,并且只需几行 Google Cloud 专用代码即可。

如需查看说明和代码示例,请参阅设置 Python 版 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. 在 Cloud Console 中,转到日志查看器

    转到“日志查看器”

  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