Blog
Registros/Logging en Python
- Publicado por: Rafael Fernandez
- Categoría: Blog Principiante Python
Rastrear los eventos que ocurren en una aplicación de software, es conocido como llevar un registro. Comencemos con un ejemplo simple, se registrará un mensaje de advertencia.
A diferencia de solo imprimir los errores, el registro puede ser configurado para deshabilitar la salida o para ser guardado en un archivo.
Ejemplo de Registro/Logging en Python
import logging # Se imprimirá un mensaje de registro a la consola logging.warning('Este es un mensaje de advertencia')
Esto genera como salida:
WARNING:root:Este es un mensaje de advertencia
Se puede direccionar la salida a un archivo de la siguiente forma:
import logging # El atributo "filename" define que se utilizará logging.basicConfig(filename='registro.log') # FileHandler (manejador de archivos) y su nombre logging.warning('Mensaje de ejemplo') logging.warning('Otro mensaje de ejemplo')
La importancia del mensaje de registro la define su nivel de severidad
Niveles de Severidad de los Registros/Logging en Python
El módulo de registro tiene varios niveles de severidad. Estos se definen con el atributo “level” de la siguiente manera:
logging.basicConfig(level=logging.DEBUG) # Aqui se define 'DEBUG' como nivel de severidad
Estos son los niveles de severidad disponibles:
Nivel | Valor Numérico | Descripción |
CRITICAL | 50 | Error muy serio |
ERROR | 40 | El software no seguirá funcionando |
WARNING | 30 | Indica que existe un error |
INFO | 20 | Información sobre la ejecución del programa |
DEBUG | 10 | Información para diagnostico de errores |
import logging logging.basicConfig(level=logging.DEBUG) # El término 'debug' es utilizado para referirse a la logging.debug('Mensaje de para debug') # busqueda de errores en el código de los programas
Tiempo en los Registros/Logging de Python
Se puede habilitar el tiempo en los registros de la siguiente forma:
logging.basicConfig(format='%(asctime)s %(message)s')
Esta linea cambia el formato de los mensajes del registro, agregándole al inicio el momento en el que se emite el mensaje.
Ejemplo:
import logging logging.basicConfig(format='%(asctime)s %(message)s', level=logging.DEBUG) # Cambio de formato del mensaje. logging.info('App de registro iniciada') # 'logging.info('')' genera un mensaje logging.warning('Mensaje de ejemplo') # con nivel INFO. logging.warning('Otro mensaje de ejemplo')
La salida sería:
2019-05-15 20:40:41,502 App de registro iniciada 2019-05-15 20:40:41,502 Mensaje de ejemplo 2019-05-15 20:40:41,502 Otro mensaje de ejemplo