Библиотека обеспечивает универсальное ведение журнала взаимодействия с API Google Ads. Вы можете фиксировать:
- Подробная информация: Полные запросы, отправленные к API, и полученные ответы.
- Краткие резюме: общий обзор взаимодействий.
Управлять этими настройками ведения журнала можно двумя способами:
- Конфигурация клиентской библиотеки: используйте специальные параметры конфигурации библиотеки.
- Программирование с помощью Python: используйте встроенную в Python структуру журналирования для более прямого контроля.
Ведение журнала настраивается автоматически при инициализации экземпляра 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
, из командной строки любые сообщения журнала, обычно выводимые в консоль, можно перенаправить (или «перенаправить») в файл. Это функция оболочки вашей операционной системы, а не самой библиотеки 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
(Или в некоторых современных оболочках, таких как Bash 4+):
python get_campaigns.py -c $CLIENT_ID &> all_logs.txt
Перехватчики регистрации
Клиентская библиотека Python использует перехватчики gRPC для доступа к запросам и ответам и их регистрации. Вы можете настроить собственное ведение журнала, создав перехватчик gRPC с собственной логикой. Подробнее и пример создания перехватчика см. в руководстве по ведению журнала.