Библиотека предоставляет универсальные возможности ведения журналов для взаимодействий с 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 с собственной логикой. Подробнее о ведении журналов и пример пользовательского перехватчика для ведения журналов можно найти в руководстве по ведению журналов.