Python Logging

Su guía definitiva para dominar módulos y manejo de excepciones

Publicado por
Comparte en redes sociales


Los registros son registros creados por una aplicación mientras se ejecuta. Son útiles para la depuración y el seguimiento de errores.

Python facilita la producción y el almacenamiento de registros. Este artículo es un tutorial sobre cómo crear registros en sus aplicaciones.

¿Qué es el registro de Python?

Python Logging es la práctica de generar registros para aplicaciones escritas en Python. Aunque existen paquetes externos para hacer esto, el más fácil de usar es el módulo de registro integrado. Este módulo es increíblemente fácil de usar pero útil. Por lo tanto, este artículo utilizará este módulo para generar registros de Python.

Beneficios de crear revistas

✅ Ayuda en la depuración. Cuando los usuarios informan un error, es fácil para los desarrolladores analizar los registros generados por el sistema para obtener más contexto sobre lo que podría haber salido mal.

✅ Te permite recopilar datos de uso de tu aplicación. Esto le permitirá crear análisis, por ejemplo, rastrear la cantidad de direcciones IP únicas que visitan su servidor web Python o los puntos finales API más populares.

✅ Los datos recopilados también muestran cómo se utilizan sus recursos y planifican las necesidades de infraestructura.

✅ También puedes automatizar la grabación cuando tus aplicaciones fallan para poder identificar rápidamente los problemas y limitar el alcance y la escala de la falla.

Llevar un diario o imprimir

La función de impresión es una forma sencilla de generar registros para sus aplicaciones. Normalmente, la mayoría de la gente depura de esta manera en producción. Sin embargo, en producción la impresión no es ideal. Esto se debe a dos razones que se enumeran a continuación:

  • Imprimir escribe los datos en la salida estándar. Esta suele ser la terminal. Sin embargo, los registros escritos en el terminal no se almacenan de forma permanente. Sin embargo, en producción, necesitará los registros escritos en el disco para poder verlos para su análisis y depuración en el futuro.
  • Al escribir registros utilizando el módulo de registro, puede establecer un nivel de prioridad para estos registros. Sin embargo, con la impresión, estos niveles no están disponibles de inmediato.

Módulo de registro de Python

Importar

El módulo de registro de Python es parte de la biblioteca estándar. Por lo tanto, no es necesario instalar ninguna herramienta adicional para utilizarlo. En su lugar, debe importarlo antes de poder usarlo. Así es como se ve la declaración de importación.

import logging

Niveles de registro

Antes de comenzar a registrar, debemos cubrir los niveles de registro. Al crear registros, existen diferentes niveles de prioridad para los registros. Cuando se escriben registros, se les asignarán niveles de prioridad. Los diferentes niveles, ordenados de menor a mayor prioridad, son los siguientes:

  1. Depuración (nivel de prioridad: 10)
  2. Información (nivel de prioridad: 20)
  3. Advertencia (nivel de prioridad: 30)
  4. Error (nivel de prioridad: 40)
  5. Crítico (nivel de prioridad: 50)
Leer también  La empresa india Velocity asigna 36 millones de dólares a empresas nacionales B2B SaaS

Además de las cinco, existe la opción de no establecer un nivel de prioridad. Como era de esperar, un registro sin prioridad establecida tendrá la clasificación más baja con un nivel de prioridad de 0. De forma predeterminada, solo se registran los registros con un nivel de advertencia o superior.

Generación de registros

Generar registros es simple. Hay una función correspondiente para cada nivel de prioridad a la que puede llamar desde el módulo de registro. Estas funciones funcionan de la misma manera; es decir, proporcionas un argumento de cadena. Esta cadena se utilizará como mensaje de registro. A continuación se muestra un ejemplo en el que llamamos funciones de registro para cada nivel de prioridad de registro.

logging.debug('This is a debug log.')
logging.info('This is an information log.')
logging.warning('This is a warning log.')
logging.error('This is an error log.')
logging.critical('This is a critical log')

El resultado sería el siguiente:

WARNING:root:This is a warning log.
ERROR:root:This is an error log.
CRITICAL:root:This is a critical log

Desde aquí puedes observar dos cosas:

  1. Como se mencionó, solo se guardaron registros de ADVERTENCIA o superiores. Este comportamiento es personalizable, como veremos en la siguiente sección.
  2. En segundo lugar, el registro es el mensaje que proporcionó como argumento, junto con el texto que indica el nivel de prioridad.

Usando el código anterior puede escribir registros en la terminal. Pero no es muy diferente de usar declaraciones impresas. Las secciones siguientes analizarán las opciones de personalización que, entre otras cosas, le permiten escribir registros en archivos.

Opciones de configuración

Esta sección discutirá la configuración del módulo de registro para que sus funciones funcionen de manera diferente. Para hacer esto, llama basicConfig función. Esta función utiliza varios argumentos de palabras clave (**kwargs) para personalizar el comportamiento.

Leer también  Allianz Trade lanza una nueva solución de pago para el comercio electrónico B2B

Especificación del archivo de registro

De forma predeterminada, los registros se escriben en la terminal; Sin embargo, si desea escribir los registros en un archivo, puede especificar el archivo utilizando el argumento de palabra clave nombre de archivo. Además del nombre del archivo, puede especificar el modo en el que se debe abrir el archivo usando el filemode argumento. Aquí un ejemplo :

import logging

logging.basicConfig(filename='logs.txt', filemode='w')

En el ejemplo anterior, hemos especificado la ubicación donde se deben escribir los registros en el formato logs.txt. Además, también hemos especificado el modo de archivo como modo de escritura. El modo predeterminado es el modo agregar. Si agrega registros de muestra y ejecuta el script, debería ver sus registros escritos en el archivo especificado.

Configurar la prioridad de registro para guardar

Como se mencionó, solo se guardan los registros en el nivel WARNING o superior. Esta sección cambiará este comportamiento para guardar todos los registros desde el nivel DEBUG.

Para cambiar el nivel mínimo de registro mostrado, pase un argumento de palabra clave de nivel al basicConfig función. El valor del argumento es una enumeración de los diferentes niveles de registro. Los diferentes valores son DEBUG, INFO, ATENCIÓN, ERROR y CRÍTICO.

Entonces, para cambiar el nivel de registro a DEBUG, llamamos al basicConfig funciona así:

logging.basicConfig(level=logging.DEBUG)

Si usa el código anterior para guardar diferentes valores, obtendrá algo como esto.

Formatear la salida

El registro base contiene el nivel de registro y el mensaje. Sin embargo, puede modificar este comportamiento para mostrar más contexto alrededor del registro. Por ejemplo, es posible que desee ver la hora en que se generó el registro, el archivo que generó el registro, el nivel de prioridad del registro y el mensaje. Para hacer esto, proporcionará el formato como un argumento de palabra clave como este:

logging.basicConfig(format='%(levelname)s %(asctime)s %(filename)s - %(message)s')

El valor del argumento de la palabra clave de formato es un patrón de cadena que contiene varios marcadores de posición. Un ejemplo de marcador de posición es %(levelname)s. Estos marcadores de posición se reemplazarán con datos reales al escribir el registro. Una lista completa de Los espacios reservados están disponibles aquí..

Al ejecutar el código anterior, debería obtener el siguiente resultado.

Leer también  How to Use Pinterest for Blogging and Increase the Traffic Flow

Inicia sesión en el manejo de excepciones

Una de las mejores áreas para usar registros es al escribir errores encontrados en bloques try/except. Los bloques Try/Except son construcciones en Python que evitan que el programa falle cuando encuentra un error. Aquí hay un tutorial detallado sobre Python Try/Exception.

Para integrar el registro en el manejo de excepciones, simplemente agregue una llamada de registro como parte del bloque excepto. Por ejemplo:

import logging

try:
    name = input("What is your name? ")
except:
    logging.error('Error encountered')

Este sencillo programa espera la entrada del usuario. Sin embargo, si el usuario cancela la entrada usando Ctrl + C, el programa generará una excepción. Esto será manejado por el código en el bloque excepto. Este código simplemente registra que se encontró un error. Esto es lo que sucede cuando ejecuta el programa:

Conclusión

En este artículo, cubrimos los registros de Python, qué son, por qué son útiles y cómo generarlos. A continuación, explicamos cómo configurar el comportamiento de registro predeterminado para generar más registros, escribir registros en un archivo y formatear los registros de cierta manera.

Luego lee este artículo sobre cosas interesantes que puedes hacer con Python.



Source link

Si quiere puede hacernos una donación por el trabajo que hacemos, lo apreciaremos mucho.

Direcciones de Billetera:

- BTC: 14xsuQRtT3Abek4zgDWZxJXs9VRdwxyPUS 

- USDT: TQmV9FyrcpeaZMro3M1yeEHnNjv7xKZDNe 

- BNB: 0x2fdb9034507b6d505d351a6f59d877040d0edb0f

- DOGE: D5SZesmFQGYVkE5trYYLF8hNPBgXgYcmrx 

También puede seguirnos en nuestras Redes sociales para mantenerse al tanto de los últimos post de la web:

-Twitter

- Telegram

Disclaimer: En Cryptoshitcompra.com no nos hacemos responsables de ninguna inversión de ningún visitante, nosotros simplemente damos información sobre Tokens, juegos NFT y criptomonedas, no recomendamos inversiones

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *