该库为 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 的内置 日志记录 模块以编程方式更改其他日志记录设置 。例如,如需将日志记录级别更改为
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 拦截器来设置自己的自定义日志记录。如需了解详情和自定义日志记录拦截器的示例,请参阅日志记录 指南 。