该库可为 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 拦截器来设置自己的自定义日志记录。如需了解详情和自定义日志记录拦截器的示例,请参阅日志记录指南。