Habilitar Logging

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

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

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.
  • De forma programática con Python: Usa el framework de logging integrado de Python para tener un control más directo.

El registro se configura automáticamente cuando se inicializa una instancia de GoogleAdsClient. Este paso de inicialización se produce, por ejemplo, cuando usas el método load_from_storage. En este punto, la biblioteca hará lo siguiente:

Cuando esta biblioteca se usa como paquete instalado, debes integrar su registro con la configuración de registro de tu aplicación. Específicamente, debes agregar un controlador de registro a la instancia del registrador de la biblioteca con el método addHandler. Este controlador indicará a dónde se dirigen los mensajes de registro de la biblioteca (p. ej., a la consola, a un archivo, etcétera). Para ello, primero recupera la instancia del registrador de la biblioteca, como se muestra aquí:

import logging

logger = logging.getLogger('google.ads.googleads.client')

Después de recuperar el registrador de la biblioteca, puedes indicarle dónde debe generar los mensajes de registro.

  • Envío de registros a la consola: Para mostrar mensajes de registro en tu consola, agrega un controlador básico. Sigue estos pasos para dirigir los registros a la salida estándar (stdout):

    A continuación, se muestra cómo establecer un controlador básico que le indicará al registrador que imprima en stdout:

    import sys
    
    # Assuming 'logger' was retrieved as per previous instructions
    logger.addHandler(logging.StreamHandler(sys.stdout))
    

    Si prefieres enviar los registros al error estándar (stderr), que se suele usar para los mensajes de error y las advertencias, haz lo siguiente:

    import sys
    
    # Assuming 'logger' was retrieved as per previous instructions
    logger.addHandler(logging.StreamHandler(sys.stderr))
    
  • Configura otros parámetros de configuración de Logging de forma programática: Una vez que tengas el objeto de registro, también puedes cambiar de forma programática otros parámetros de configuración de Logging con el módulo logging integrado de Python. Por ejemplo, para cambiar el nivel de registro a DEBUG (que mostrará mensajes más detallados), haz lo siguiente:

    logger.setLevel(logging.DEBUG)
    

Niveles de registro

El cliente genera registros en varios niveles diferentes, y puedes establecer tu configuración para ver algunos o todos los siguientes:

Nivel Solicitud exitosa Se produjo un error en la solicitud
DEBUG Es un registro detallado con objetos de solicitud y respuesta completos en formato JSON. Es un registro detallado con objetos de solicitud y excepción completos en formato JSON.
INFO Un resumen conciso con campos específicos de solicitud y respuesta Es un registro detallado con objetos de solicitud y excepción completos en formato JSON.
WARNING Ninguno Es un resumen conciso con información específica de la solicitud, el estado de la excepción y el mensaje.

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 significa que solo verás mensajes concisos relacionados con las solicitudes fallidas, pero establecerlo en DEBUG significa que verás todos los tipos posibles de registros en la tabla anterior.

Registro en un archivo

Cuando ejecutas secuencias de comandos de ejemplo, como get_campaigns.py, desde la línea de comandos, cualquier mensaje de registro que se imprima normalmente en la consola se puede redireccionar (o "canalizar") a un archivo. Esta es una función de la shell de tu sistema operativo, no de la biblioteca de Python en sí. A continuación, le indicamos cómo hacerlo:

Para guardar la salida estándar (la mayoría de los registros) en un archivo (y sobrescribirlo), haz lo siguiente:

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

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

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

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

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

(O, en algunos shells modernos, como Bash 4 y versiones posteriores):

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

Interceptores de registros

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 registro para obtener más detalles y un ejemplo de un interceptor de registro personalizado.