Библиотека предоставляет универсальные возможности ведения журналов для взаимодействий с Google Ads API. Вы можете:
- Подробная информация. Полные запросы, отправленные в API, и полученные ответы.
- Краткие сводки. Общие сведения о взаимодействиях с API.
Управлять этими настройками можно двумя способами:
- Настройка клиентской библиотеки. Используйте специальные параметры конфигурации библиотеки в файле
google-ads.yamlили переменных среды. - Программно с помощью Python. Используйте встроенный фреймворк
loggingдля прямого управления.
Настроить через google-ads.yaml
Ведение журнала настраивается автоматически при инициализации экземпляра GoogleAdsClient (например, при вызове load_from_storage). При инициализации библиотека:
- Считывает заданные вами настройки ведения журнала из конфигурации.
- Передает эти настройки во встроенный модуль Python
logging.config.dictConfig, чтобы активировать их.
Например, вы можете добавить раздел logging в файл google-ads.yaml:
logging:
version: 1
disable_existing_loggers: false
formatters:
default_fmt:
format: '[%(asctime)s - %(levelname)s] %(message).5000s'
datefmt: '%Y-%m-%d %H:%M:%S'
handlers:
default_handler:
class: logging.StreamHandler
formatter: default_fmt
loggers:
'':
handlers: [default_handler]
level: INFO
Программная настройка
Если вы используете библиотеку как установленный пакет без раздела logging в файле конфигурации, вы можете программно интегрировать ее ведение журнала с настройками ведения журнала вашего приложения. Прикрепите обработчик ведения журнала к экземпляру регистратора библиотеки (google.ads.googleads.client) с помощью addHandler и задайте целевой уровень ведения журнала:
import logging
import sys
# Retrieve the library's logger instance.
logger = logging.getLogger("google.ads.googleads.client")
# Direct logs to standard output (stdout).
logger.addHandler(logging.StreamHandler(sys.stdout))
# Set the log level to DEBUG to view detailed messages.
logger.setLevel(logging.DEBUG)
Если вы хотите отправлять журналы в стандартный поток ошибок (stderr), который часто используется для сообщений об ошибках и предупреждений, передайте sys.stderr в logging.StreamHandler:
import logging
import sys
logger = logging.getLogger("google.ads.googleads.client")
logger.addHandler(logging.StreamHandler(sys.stderr))
logger.setLevel(logging.WARNING)
Уровни ведения журнала
Клиент генерирует журналы с несколькими уровнями серьезности. Вы можете настроить регистратор так, чтобы он показывал некоторые или все из следующих уровней:
| Уровень | Запрос выполнен | Не удалось выполнить запрос |
|---|---|---|
DEBUG |
Подробный журнал с полными объектами запросов и ответов в формате JSON. | Подробный журнал с полными объектами запросов и исключений в формате JSON. |
INFO |
Краткая сводка с определенными полями запроса и ответа. | Подробный журнал с полными объектами запросов и исключений в формате JSON. |
WARNING |
Нет | Краткая сводка с информацией о запросе, состоянии исключения и сообщении об ошибке. |
Поскольку фреймворк ведения журналов Python игнорирует сообщения журнала, которые менее серьезны, чем настроенный уровень, установка уровня WARNING показывает только краткие сообщения для неудачных запросов, а установка уровня DEBUG показывает все типы журналов в таблице.
Запись в файл журнала
Вы можете записывать журналы в файл программно на Python или перенаправляя выходные данные из командной строки.
Запись в файл на Python
Чтобы записывать журналы непосредственно в файл из Python, прикрепите logging.FileHandler к регистратору клиента:
import logging
logger = logging.getLogger("google.ads.googleads.client")
file_handler = logging.FileHandler("google_ads.log")
logger.addHandler(file_handler)
logger.setLevel(logging.INFO)
Перенаправление вывода с помощью оболочки
При запуске примеров скриптов, таких как get_campaigns.py, из командной строки вы можете перенаправить вывод журнала консоли в файл с помощью оболочки операционной системы.
Чтобы сохранить стандартный вывод в файл (перезаписав существующий файл):
python get_campaigns.py -c $CUSTOMER_ID > campaign_logs.txt
Чтобы добавить стандартный вывод в существующий файл:
python get_campaigns.py -c $CUSTOMER_ID >> campaign_logs.txt
Чтобы сохранить стандартный вывод и стандартную ошибку (для ошибок и предупреждений) в один файл:
python get_campaigns.py -c $CUSTOMER_ID > all_logs.txt 2>&1
Или в Bash 4+:
python get_campaigns.py -c $CUSTOMER_ID &> all_logs.txt
Специальные перехватчики gRPC
Клиентская библиотека Python использует перехватчики gRPC для доступа к сведениям о запросах и ответах и их регистрации. Вы можете настроить собственное ведение журнала, создав перехватчик gRPC с собственной логикой. Подробнее о ведении журналов и пример пользовательского перехватчика для ведения журналов можно найти в руководстве по ведению журналов.