Habilitar registro

La biblioteca proporciona un registro versátil para las interacciones de la API de Google Ads. Puedes capturar lo siguiente:

  • Información detallada: Solicitudes completas enviadas a la API y respuestas recibidas
  • Resúmenes concisos: Resúmenes de alto nivel de las interacciones de la API

Puedes controlar estos parámetros de configuración de registro de dos maneras:

  • Configuración de la biblioteca cliente: Usa las opciones de configuración específicas de la biblioteca en tu google-ads.yamlarchivo o en las variables de entorno.
  • De manera programática con Python: Usa el framework logging integrado de Python para obtener control directo.

Configura a través de google-ads.yaml

El registro se configura automáticamente cuando se inicializa una instancia de GoogleAdsClient (por ejemplo, cuando llamas a load_from_storage). Durante la inicialización, la biblioteca hace lo siguiente:

Por ejemplo, puedes agregar una sección logging a tu archivo 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

Configura de manera programática

Cuando usas la biblioteca como un paquete instalado sin una sección logging en tu archivo de configuración, puedes integrar su registro con la configuración de registro de tu aplicación de manera programática. Adjunta un controlador de registro a la instancia de registrador de la biblioteca (google.ads.googleads.client) con addHandler y establece el nivel 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)

Si prefieres enviar registros al error estándar (stderr), que suele usarse para mensajes de error y advertencias, pasa sys.stderr a logging.StreamHandler:

import logging
import sys

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

Niveles de registro

El cliente genera registros en varios niveles de gravedad, y puedes configurar el registrador para ver algunos o todos los siguientes:

Nivel Solicitud exitosa Solicitud fallida
DEBUG Un registro detallado con objetos de solicitud y respuesta completos como JSON Un registro detallado con objetos de solicitud y excepción completos como JSON
INFO Un resumen conciso con campos de solicitud y respuesta específicos Un registro detallado con objetos de solicitud y excepción completos como JSON
WARNING Ninguno Un resumen conciso con información de solicitud específica, el estado de excepción y el mensaje de error

Debido a que el framework de registro de Python ignora los mensajes de registro que son menos graves que el nivel configurado, si estableces el nivel en WARNING, solo se muestran mensajes concisos para las solicitudes fallidas, mientras que, si estableces el nivel en DEBUG, se muestran todos los tipos de registro de la tabla.

Registra en un archivo

Puedes escribir registros en un archivo de manera programática en Python o redireccionando la salida desde la línea de comandos.

Registra en un archivo en Python

Para escribir registros directamente en un archivo desde Python, adjunta un logging.FileHandler al registrador del 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)

Redirecciona la salida con el shell

Cuando ejecutas secuencias de comandos de ejemplo como get_campaigns.py desde la línea de comandos, puedes redireccionar la salida del registro de la consola a un archivo con el shell de tu sistema operativo.

Para guardar la salida estándar en un archivo (reemplazando cualquier archivo existente), haz lo siguiente:

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

Para agregar la salida estándar a un archivo existente, haz lo siguiente:

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

Para guardar la salida estándar y el error estándar (para errores y advertencias) en el mismo archivo, haz lo siguiente:

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

O bien, en Bash 4+:

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

Interceptores de gRPC personalizados

La biblioteca cliente de Python usa interceptores de gRPC interceptors para acceder a los detalles de las solicitudes y respuestas, y registrarlos. Puedes configurar tu propio registro personalizado creando un interceptor de gRPC con lógica personalizada. Consulta la guía de registro para obtener más detalles y un ejemplo de un interceptor de registro personalizado.