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.
Además, puedes controlar esta 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 manera programática con Python: Usa el framework de registro integrado de Python para obtener un control más directo.
El registro se configura automáticamente cuando se inicializa una instancia de GoogleAdsClient
. Este paso de inicialización ocurre, 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 la función
logging.config.dictConfig
integrada de Python para activarlos.
Cuando esta biblioteca se usa como un 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 propia instancia del registrador de la biblioteca con el método addHandler
. Este controlador dictará adó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 a continuación:
import logging
logger = logging.getLogger('google.ads.googleads.client')
Después de recuperar el registrador de la biblioteca, puedes indicarle dónde generar los mensajes de registro.
Envío de registros a la consola: Para mostrar mensajes de registro en la consola, debes agregar un controlador básico. A continuación, se muestra cómo dirigir los registros a la salida estándar (
stdout
):A continuación, se muestra cómo configurar 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 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))
Configuración de otros parámetros de registro de forma programática: Una vez que tengas el objeto registrador, también puedes cambiar de forma programática otros parámetros de registro con el módulo de registro 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 configurar tu configuración para ver algunos o todos los siguientes elementos:
Nivel | Solicitud exitosa | Se produjo un error en la solicitud |
---|---|---|
DEBUG |
Un registro detallado con objetos de solicitud y respuesta completos como JSON. | Un registro detallado con la solicitud completa y los objetos de excepción como JSON. |
INFO |
Un resumen conciso con campos de solicitud y respuesta específicos | Un registro detallado con la solicitud completa y los objetos de excepción como JSON. |
WARNING |
Ninguno | Un resumen conciso con información específica de la solicitud, el estado y el mensaje de la excepción. |
Dado que el framework de registro de Python ignora los mensajes de registro que son menos graves que el nivel configurado, si estableces el valor en WARNING
, solo verás mensajes concisos relacionados con las solicitudes fallidas, pero si estableces el valor en DEBUG
, verás todos los tipos de registros posibles 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 imprime en la consola se puede redireccionar (o “canalizar”) a un archivo. Esta es una función de la shell del sistema operativo, no de la biblioteca de Python. A continuación, le indicamos cómo hacerlo:
Para guardar el resultado estándar (la mayoría de los registros) en un archivo (reemplazándolo), haz lo siguiente:
python get_campaigns.py -c $CLIENT_ID > campaign_logs.txt
Para adjuntar el resultado 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 registro
La biblioteca cliente de Python usa interceptores de gRPC para acceder a los detalles de las solicitudes y respuestas, y registrarlos. Para configurar tu propio registro personalizado, crea 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.