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:
- Lee la configuración de registro especificada desde su configuración.
- Pasa estos parámetros de configuración a
logging.config.dictConfig
integrado de Python para activarlos.
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.