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 con 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 archivo
google-ads.yamlo en las variables de entorno. - De forma programática con Python: Usa el framework
loggingintegrado de Python para tener 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:
- Lee los parámetros de configuración de registro especificados en su configuración.
- Pasa esos parámetros de configuración a
logging.config.dictConfigintegrado de Python para activarlos.
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 forma 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 el programa de configuración de registro de tu aplicación de forma programática. Adjunta un controlador de registro a la instancia del registrador de la biblioteca (google.ads.googleads.client) con addHandler y establece el nivel de registro objetivo:
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 los registros al error estándar (stderr), que se suele usar para los mensajes de error y las 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 elementos:
| Nivel | Solicitud exitosa | No se pudo realizar la solicitud |
|---|---|---|
DEBUG |
Es un registro detallado con objetos de solicitud y respuesta completos en formato JSON. | Es un registro detallado con objetos de excepción y solicitud completos en formato JSON. |
INFO |
Un resumen conciso con campos específicos de solicitud y respuesta. | Es un registro detallado con objetos de excepción y solicitud completos en formato JSON. |
WARNING |
Ninguno | Un resumen conciso con información específica de la solicitud, el estado de la excepción y el mensaje de error. |
Dado que el framework de registro de Python ignora los mensajes de registro que son menos graves que el nivel configurado, establecer el nivel en WARNING solo muestra mensajes concisos para las solicitudes fallidas, mientras que establecer el nivel en DEBUG muestra todos los tipos de registros en la tabla.
Registrar en un archivo
Puedes escribir registros en un archivo de forma programática en Python o redireccionando la salida desde la línea de comandos.
Cómo registrar 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)
Redirige la salida con la 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 y versiones posteriores:
python get_campaigns.py -c $CUSTOMER_ID &> all_logs.txt
Interceptores de gRPC personalizados
La biblioteca cliente de Python usa interceptores de gRPC 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 Logging para obtener más detalles y un ejemplo de un interceptor de Logging personalizado.