Ativar a geração de registros

A biblioteca oferece registros versáteis para interações com a API Google Ads. Você pode capturar:

  • Informações detalhadas: solicitações completas enviadas à API e respostas recebidas.
  • Resumos concisos: visões gerais de alto nível das interações da API.

É possível controlar essas configurações de geração de registros de duas maneiras:

  • Configuração da biblioteca de cliente: use as opções de configuração específicas da biblioteca no arquivo google-ads.yaml ou nas variáveis de ambiente.
  • De forma programática com Python: use o framework integrado logging do Python para controle direto.

Configurar pelo google-ads.yaml

A geração de registros é configurada automaticamente quando uma instância GoogleAdsClient é inicializada (por exemplo, quando você chama load_from_storage). Na inicialização, a biblioteca:

Por exemplo, é possível adicionar uma seção logging ao arquivo 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

Configurar de forma programática

Ao usar a biblioteca como um pacote instalado sem uma seção logging no arquivo de configuração, é possível integrar a geração de registros dela à configuração de geração de registros do aplicativo de maneira programática. Anexe um gerenciador de geração de registros à instância do logger da biblioteca (google.ads.googleads.client) usando addHandler e defina o nível de registro de destino:

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)

Se você preferir enviar registros para o erro padrão (stderr), que geralmente é usado para mensagens de erro e avisos, transmita sys.stderr para logging.StreamHandler:

import logging
import sys

logger = logging.getLogger("google.ads.googleads.client")
logger.addHandler(logging.StreamHandler(sys.stderr))
logger.setLevel(logging.WARNING)

Níveis de registro

O cliente gera registros em vários níveis de gravidade, e é possível configurar o gerador de registros para ver alguns ou todos os seguintes:

Nível Solicitação bem-sucedida Falha na solicitação
DEBUG Um registro detalhado com objetos de solicitação e resposta completos como JSON. Um registro detalhado com objetos de solicitação e exceção completos como JSON.
INFO Um resumo conciso com campos específicos de solicitação e resposta. Um registro detalhado com objetos de solicitação e exceção completos como JSON.
WARNING Nenhum Um resumo conciso com informações específicas da solicitação, o estado da exceção e a mensagem de erro.

Como o framework de geração de registros do Python ignora mensagens de registro menos graves do que o nível configurado, definir o nível como WARNING mostra apenas mensagens concisas para solicitações com falha, enquanto definir o nível como DEBUG mostra todos os tipos de registro na tabela.

Registrar em um arquivo

É possível gravar registros em um arquivo de maneira programática em Python ou redirecionando a saída da linha de comando.

Registrar em um arquivo em Python

Para gravar registros diretamente em um arquivo do Python, anexe um logging.FileHandler ao gerador de registros do cliente:

import logging

logger = logging.getLogger("google.ads.googleads.client")
file_handler = logging.FileHandler("google_ads.log")
logger.addHandler(file_handler)
logger.setLevel(logging.INFO)

Redirecionar a saída usando o shell

Ao executar scripts de exemplo como get_campaigns.py na linha de comando, é possível redirecionar a saída do registro do console para um arquivo usando o shell do sistema operacional.

Para salvar a saída padrão em um arquivo (substituindo qualquer arquivo existente):

python get_campaigns.py -c $CUSTOMER_ID > campaign_logs.txt

Para anexar a saída padrão a um arquivo:

python get_campaigns.py -c $CUSTOMER_ID >> campaign_logs.txt

Para salvar a saída padrão e o erro padrão (para erros e avisos) no mesmo arquivo:

python get_campaigns.py -c $CUSTOMER_ID > all_logs.txt 2>&1

Ou, no Bash 4+:

python get_campaigns.py -c $CUSTOMER_ID &> all_logs.txt

Interceptadores gRPC personalizados

A biblioteca de cliente do Python usa interceptadores do gRPC para acessar e registrar detalhes de solicitações e respostas. É possível configurar sua própria geração de registros personalizada criando um interceptador gRPC com lógica personalizada. Consulte o guia de geração de registros para mais detalhes e um exemplo de um interceptador de geração de registros personalizado.