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