设置 Python 版 Cloud Logging

使用 Logging 客户端库随附的 Python 日志记录处理程序,或者直接使用 Python 版 Cloud Logging API Cloud 客户端库,可以从 Python 应用向 Logging 写入日志。

准备工作

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  3. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  4. 启用 Cloud Logging API。

    启用 API

  5. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  6. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  7. 启用 Cloud Logging API。

    启用 API

  8. 准备 Python 开发环境。

    转到 Python 设置指南

安装库

如需安装 Python 版 Cloud Logging 库,请参阅安装客户端库

安装后,此库会包含用于将 Python 的标准日志记录模块连接到 Logging 的日志记录处理程序,以及用于手动访问 Cloud Logging 的 API 客户端库。

将库连接到 Python 日志记录

如需将 Cloud Logging 处理程序连接到 Python 根日志记录器,从而将所有日志条目发送到 Cloud logging,请使用 setup_logging 辅助方法:

# Imports the Cloud Logging client library
import google.cloud.logging

# Instantiates a client
client = google.cloud.logging.Client()

# Retrieves a Cloud Logging handler based on the environment
# you're running in and integrates the handler with the
# Python logging module. By default this captures all logs
# at INFO level and higher
client.setup_logging()

使用 Python 根日志记录器

连接处理程序后,应用中生成的所有处于INFO 级别或更高级别的日志都将默认发送至 Logging:

# Imports Python standard library logging
import logging

# The data to log
text = "Hello, world!"

# Emits the data using the standard logging module
logging.warning(text)

如果将来自 App Engine 或 Google Kubernetes Engine 的消息记录到 Logging 中,则处理程序会将此类消息发送到这些环境各自的资源类型;否则,日志将默认显示在 Global 资源类型的 python 日志下。

配置日志记录处理程序

如需仅将 Cloud Logging 处理程序连接到选定的 Python 日志记录器,或者配置该日志记录处理程序,请参阅 API 库文档

如需详细了解如何安装,请参阅 Python 版 Cloud Logging 库的文档。您还可以使用问题跟踪器来报告问题。

直接使用 Cloud 客户端库

如需了解如何直接使用 Python 版 Cloud Logging Cloud 客户端库,请参阅 Cloud Logging 客户端库

在 Google Cloud 上运行

要使用 Python 版 Cloud Logging 库,您需要具有 Google Cloud 的 IAM Logs Writer 角色。默认情况下,大多数 Google Cloud 环境都提供此角色。

App Engine

App Engine 默认授予 Logs Writer 角色

无需明确提供凭据即可使用 Python 版 Cloud Logging 库。

系统会自动为 App Engine 应用启用 Cloud Logging。 无需进行额外设置。

Google Kubernetes Engine (GKE)

GKE 默认授予 Logs Writer 角色

如果需要,您还可以在创建集群时使用以下命令添加 logging.write 访问权限范围:

gcloud container clusters create example-cluster-name \
    --scopes https://www.googleapis.com/auth/logging.write

Compute Engine

使用 Compute Engine 虚拟机实例时,请为每个实例添加 cloud-platform 访问权限范围。通过 Google Cloud Console 创建新实例时,您可以在创建实例面板的身份和 API 访问权限部分执行此操作。请使用 Compute Engine 默认服务帐号或您选用的其他服务帐号,并在身份和 API 访问权限部分勾选允许所有 Cloud APIs 的全面访问权限。无论您选择哪个服务帐号,都请确保已在 Cloud Console 的 IAM 和管理部分向该服务帐号授予 Logs Writer 角色

在本地和其他位置运行

如需在 Google Cloud 之外使用 Python 版 Cloud Logging 库(包括在您自己的工作站、数据中心的计算机或其他云服务提供商的虚拟机实例上运行该库),您必须直接向 Python 版 Cloud Logging 库提供您的 Google Cloud 项目 ID 和相应的服务帐号凭据。

您可以手动创建和获取服务帐号凭据。指定角色字段时,请使用 Logs Writer 角色。如需详细了解 Identity and Access Management 角色,请转到访问权限控制指南

查看日志

部署后,您可以在日志浏览器中查看日志。

转到日志浏览器

在日志浏览器中,您必须指定一个或多个资源,但资源的选择并不那么显而易见。以下是帮助您上手的一些提示:

  • 如果您将把应用部署到 App Engine 或者您使用的是 App Engine 专用的库,请将资源设置为 GAE 应用

  • 如果您将在 Compute Engine 上部署应用,请将资源设置为 GCE 虚拟机实例

  • 如果您要在 Google Kubernetes Engine 上部署应用,则集群的日志记录配置将确定日志条目的资源类型。如需详细了解旧版 Google Cloud 运维套件和 Google Cloud 运维套件 Kubernetes Monitoring 解决方案,以及这些选项如何影响资源类型,请参阅迁移至 Google Cloud 运维套件 Kubernetes Monitoring

  • 如果您的应用直接使用 Cloud Logging API,则资源取决于该 API 和您的配置。例如,在您的应用中,您可以指定资源或使用默认资源。

  • 如果您在日志浏览器中没有看到任何日志,若要查看所有日志条目,请切换到高级查询模式并使用空查询。

    1. 如需切换到高级查询模式,请点击日志浏览器顶部的菜单 (▾),然后选择转换为高级过滤条件
    2. 清除过滤条件框中显示的内容。
    3. 点击提交过滤条件

    您可以检查各个条目以找出您的资源。

如需了解其他信息,请参阅查看日志高级日志查询