Registrar mensajes en la consola en Django

Vaibhav Vaibhav 12 abril 2022
Registrar mensajes en la consola en Django

Cuando instalamos un conjunto de software en nuestra máquina, a menudo encontramos un archivo de registro o vemos algunos mensajes que se imprimen dentro de la consola de esa aplicación. Estos son mensajes de registro que brindan información sobre los eventos que ocurren en la aplicación, las tareas que el software está completando, los errores encontrados, las advertencias, etc. Estos mensajes ayudan a los desarrolladores de software a mejorar su aplicación y depurarla si los usuarios permiten que la aplicación comparta los informes de errores.

Cuando trabajamos con Django o cualquier otro marco para un proyecto, generalmente usamos declaraciones de impresión para depurar nuestras aplicaciones. Las declaraciones impresas son grandiosas; están integrados y son muy fáciles de usar. Pero podemos llevar esto al siguiente nivel si comenzamos a usar paquetes o bibliotecas dedicadas a este propósito. Estas bibliotecas nos permiten definir niveles para nuestros mensajes de registro e imprimir sin esfuerzo información adicional como números de línea y marcas de tiempo. Algunas bibliotecas incluso nos permiten agregar colores a nuestras declaraciones o mensajes de registro.

En este artículo, aprenderemos cómo registrar mensajes en la consola en proyectos de Django.

Mensajes de registro utilizando logging de la biblioteca Python incorporada

Python viene con una biblioteca incorporada logging, cuyo único propósito es ayudar a implementar un sistema de registro de eventos flexible. En este artículo, no repasaremos todo, sino que cubriremos solo lo básico y algunas cosas esenciales.

Cuando trabajamos con logging, utilizamos un logger para registrar mensajes en la consola. Como se mencionó anteriormente, los mensajes de registro tienen algunos niveles que indican el propósito de un mensaje de registro. Esta biblioteca tiene cinco de esos niveles, y cada nivel tiene un número de antigüedad adjunto. Por ejemplo, el nivel CRITICAL tiene la antigüedad más alta de 50. DEBUG tiene 10. INFO, WARNING y ERROR tienen 20, 30 y 40, respectivamente.

  • DEBUG: se utiliza para imprimir mensajes para depurar una aplicación.
  • INFO: se utiliza para imprimir mensajes generales como afirmaciones, confirmaciones y mensajes de éxito.
  • WARNING: Se utiliza para reportar advertencias, eventos inesperados debido a entradas, indicaciones de algunos problemas que puedan surgir en el futuro, etc.
  • ERROR: se utiliza para alertar sobre problemas graves que probablemente no detendrán la ejecución de la aplicación.
  • CRITICAL: se utiliza para alertar sobre problemas críticos que pueden dañar los datos del usuario, exponer los datos del usuario, obstaculizar la seguridad, detener algún servicio o tal vez finalizar la aplicación en sí.

La biblioteca logging tiene funciones que podemos utilizar para registrar mensajes. Para demostrarlo, consulte el siguiente código:

import logging

logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")

De forma predeterminada, el registrador no registra los mensajes de registro de nivel de debug y de info. Para habilitarlos, tenemos que definir un nivel para el registrador. El siguiente código hace lo mismo:

import logging

logging.basicConfig(level=logging.NOTSET)  # Here
logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")

Si el nivel se establece en INFO, solo se imprimirán todos los niveles con antigüedad superior e igual a la de INFO. El siguiente programa describe este proceso:

import logging

logging.basicConfig(level=logging.INFO)  # Here
logging.debug("Log message goes here.")
logging.info("Log message goes here.")
logging.warning("Log message goes here.")
logging.error("Log message goes here.")
logging.critical("Log message goes here.")

El método basicConfig() se puede utilizar para definir el nivel. En total, el parámetro level puede aceptar seis valores.

  • logging.DEBUG # 10
  • logging.INFO # 20
  • registro.WARNING # 30
  • logging.ERROR # 40
  • registro.CRITICAL # 50
  • logging.NOTSET # 0

Hay más parámetros que puede configurar; puede leer más sobre ellos aquí.

Para obtener más información, consulte esta lista:

  • filename: el método basicConfig() tiene un parámetro de filename que se puede utilizar para establecer un nombre de archivo, en el que se deben registrar todos los mensajes. Cuando se especifica un nombre de archivo, los mensajes de registro se registran en este archivo en lugar de en la consola.
  • filemode - El método basicConfig() tiene un parámetro filemode que se utiliza para definir el modo de apertura del archivo mencionado. De forma predeterminada, se establece en "a", que significa append. Por lo tanto, cada vez que ejecute el programa, se agregarán nuevos mensajes de registro a los mensajes antiguos.
  • format: el método basicConfig() tiene un parámetro de format que se puede utilizar para formatear la estructura de los mensajes de registro. El formato predeterminado, que se ve así: <Level>:root:<Message>, será sobrescrito por el nuevo formato.

Si desea leer más sobre esta biblioteca, consulte aquí.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.