该库可为 Google Ads API 互动提供多样化的日志记录。您可以捕获:
- 详细信息:发送到 API 的完整请求和收到的响应。
- 简洁的摘要:互动内容的概要。
您可以通过以下两种方式控制这些日志记录设置:
在初始化 GoogleAdsClient
实例时,系统会自动配置日志记录。例如,当您使用 load_from_storage
方法时,就会发生此初始化步骤。此时,该库将:
- 从其配置中读取您指定的日志记录设置。
- 将这些设置传递给 Python 的内置
logging.config.dictConfig
以启用它们。
将此库用作已安装的软件包时,您需要将其日志记录与应用的日志记录设置集成。具体而言,您必须使用 addHandler
方法将日志记录处理程序添加到库自己的日志记录器实例。此处理程序将决定库的日志消息的目标位置(例如控制台、文件等)。为此,请先检索库的日志记录器实例,如下所示:
import logging
logger = logging.getLogger('google.ads.googleads.client')
检索库的日志记录器后,您可以告诉它在哪里输出日志消息。
将日志发送到控制台:如需在控制台中显示日志消息,您需要添加一个基本处理程序。如需将日志定向到标准输出 (
stdout
),请按以下步骤操作:下面介绍了如何设置一个基本处理程序,以指示日志记录器将日志输出到
stdout
:import sys # Assuming 'logger' was retrieved as per previous instructions logger.addHandler(logging.StreamHandler(sys.stdout))
如果您希望将日志发送到标准错误 (
stderr
)(通常用于错误消息和警告):import sys # Assuming 'logger' was retrieved as per previous instructions logger.addHandler(logging.StreamHandler(sys.stderr))
程序化配置其他日志记录设置:有了日志记录器对象后,您还可以使用 Python 的内置 logging 模块程序化更改其他日志记录设置。例如,如需将日志记录级别更改为
DEBUG
(这将显示更详细的消息),请执行以下操作:logger.setLevel(logging.DEBUG)
日志级别
客户端会在几个不同级别生成日志,您可以设置配置以查看以下部分或全部日志:
级别 | 成功请求 | 请求失败 |
---|---|---|
DEBUG |
详细日志,其中包含 JSON 格式的完整请求和响应对象。 | 详细日志,其中包含 JSON 格式的完整请求和异常对象。 |
INFO |
包含特定请求和响应字段的简明摘要。 | 详细日志,其中包含 JSON 格式的完整请求和异常对象。 |
WARNING |
无 | 包含具体请求信息、异常状态和消息的简明摘要。 |
由于 Python 日志记录框架会忽略严重程度低于配置级别的日志消息,因此将其设置为 WARNING
意味着您只会看到与失败请求相关的简洁消息,但将其设置为 DEBUG
意味着您会看到上表中的所有可能类型的日志。
记录到文件
从命令行运行示例脚本(例如 get_campaigns.py
)时,通常输出到控制台的所有日志消息都可以重定向(或“管道传输”)到文件。这是操作系统 shell 的功能,而非 Python 库本身的功能。具体方法如下:
如需将标准输出(大多数日志)保存到文件(覆盖该文件),请执行以下操作:
python get_campaigns.py -c $CLIENT_ID > campaign_logs.txt
如需将标准输出附加到文件,请执行以下操作:
python get_campaigns.py -c $CLIENT_ID >> campaign_logs.txt
如需将标准输出和标准错误(对于错误/警告)保存到同一文件,请执行以下操作:
python get_campaigns.py -c $CLIENT_ID > all_logs.txt 2>&1
(或者,在某些新型 shell 中,例如 Bash 4+):
python get_campaigns.py -c $CLIENT_ID &> all_logs.txt
日志记录拦截器
Python 客户端库使用 gRPC 拦截器来访问和记录请求和响应详情。您可以通过使用自定义逻辑创建 gRPC 拦截器来设置自己的自定义日志记录。如需了解详情并查看自定义日志记录拦截器示例,请参阅日志记录指南。