Iniciar sesión en Python

El registro es un medio para rastrear eventos que ocurren cuando se ejecuta algún software. El registro es importante para el desarrollo, la depuración y la ejecución de software. Si no tiene ningún registro y su programa falla, hay muy pocas posibilidades de que detecte la causa del problema. Y si detecta la causa, consumirá mucho tiempo. Con el registro, puede dejar un rastro de migas de pan para que, si algo sale mal, podamos determinar la causa del problema. 

Hay una serie de situaciones, como si espera un número entero, se le ha dado un flotante y puede usar una API en la nube, el servicio está fuera de servicio por mantenimiento y mucho más. Tales problemas están fuera de control y son difíciles de determinar. 

¿Por qué la impresión no es una buena opción?

Algunos desarrolladores utilizan el concepto de imprimir las sentencias para validar si las sentencias se ejecutaron correctamente o se produjo algún error. Pero imprimir no es una buena idea. Puede resolver sus problemas con secuencias de comandos simples, pero con secuencias de comandos complejas, el enfoque de impresión fallará. Python tiene un registro
de módulo incorporado que permite escribir mensajes de estado en un archivo o en cualquier otro flujo de salida. El archivo puede contener la información sobre qué parte del código se ejecuta y qué problemas han surgido.  

Niveles de mensaje de registro

Hay cinco niveles integrados del mensaje de registro.  

  • Depuración: se utilizan para brindar información detallada, que generalmente es de interés solo cuando se diagnostican problemas.
  • Información: se utilizan para confirmar que las cosas funcionan como se esperaba
  • Advertencia: se utilizan para indicar que sucedió algo inesperado o es indicativo de algún problema en el futuro cercano.
  • Error: Indica que debido a un problema más grave, el software no ha podido realizar alguna función
  • Crítico: Esto indica un error grave, lo que indica que es posible que el programa en sí no pueda continuar ejecutándose

Si es necesario, los desarrolladores tienen la opción de crear más niveles, pero estos son suficientes para manejar todas las situaciones posibles. A cada nivel integrado se le ha asignado su valor numérico.

El módulo de registro está repleto de varias funciones. Tiene varias constantes, clases y métodos. Los elementos con mayúsculas son constantes, los elementos en mayúsculas son clases y los elementos que comienzan con letras minúsculas son métodos. 

Hay varios objetos registradores ofrecidos por el propio módulo.  

  • Logger.info(msg): Esto registrará un mensaje con nivel INFO en este registrador.
  • Logger.warning(msg): Esto registrará un mensaje con un nivel de ADVERTENCIA en este registrador.
  • Logger.error(msg): Esto registrará un mensaje con el nivel ERROR en este registrador.
  • Logger.critical(msg): Esto registrará un mensaje con nivel CRÍTICO en este registrador.
  • Logger.log(lvl,msg): Esto registrará un mensaje con nivel de número entero lvl en este registrador.
  • Logger.exception(msg): Esto registrará un mensaje con el nivel ERROR en este registrador.
  • Logger.setLevel(lvl): esta función establece el umbral de este registrador en lvl. Esto significa que todos los mensajes por debajo de este nivel serán ignorados.
  • Logger.addFilter(filt) : Esto agrega un filtro específico a este registrador.
  • Logger.removeFilter(filt) : Esto elimina un filtro de filtro específico en este registrador.
  • Logger.filter(registro) : este método aplica el filtro del registrador al registro proporcionado y devuelve True si se va a procesar el registro. De lo contrario, devolverá False.
  • Logger.addHandler(hdlr): Esto agrega un controlador hdlr específico a este registrador.
  • Logger.removeHandler(hdlr): esto elimina un controlador específico hdlr en este registrador.
  • Logger.hasHandlers() : Esto verifica si el registrador tiene algún controlador configurado o no. 

Los basicos

Los conceptos básicos del uso del módulo de registro para registrar los eventos en un archivo son muy simples. 

Para eso, simplemente importe el módulo de la biblioteca.  

  1. Cree y configure el registrador. Puede tener varios parámetros. Pero lo más importante, pase el nombre del archivo en el que desea registrar los eventos.
  2. Aquí también se puede configurar el formato del registrador. De forma predeterminada, el archivo funciona en modo de adición , pero podemos cambiarlo a modo de escritura si es necesario.
  3. Además, se puede establecer el nivel del registrador que actúa como umbral para el seguimiento en función de los valores numéricos asignados a cada nivel. 
    Hay varios atributos que se pueden pasar como parámetros.
  4. La lista de todos esos parámetros se proporciona en Python Library . El usuario puede elegir el atributo requerido según el requisito.
    Después de eso, cree un objeto y use varios métodos como se muestra en el ejemplo.

Python

# importing module
import logging
 
# Create and configure logger
logging.basicConfig(filename="newfile.log",
                    format='%(asctime)s %(message)s',
                    filemode='w')
 
# Creating an object
logger = logging.getLogger()
 
# Setting the threshold of logger to DEBUG
logger.setLevel(logging.DEBUG)
 
# Test messages
logger.debug("Harmless debug Message")
logger.info("Just an information")
logger.warning("Its a Warning")
logger.error("Did you try to divide by zero")
logger.critical("Internet is down")

El código anterior generará un archivo con el nombre proporcionado y si abrimos el archivo, el archivo contiene los siguientes datos. 

Este artículo es una contribución de Rishabh Bansal . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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