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