Включить ведение журнала

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