Registro de eventos en aplicaciones Django con Django Log
Django Log es un sistema de registro integrado en Django que permite registrar eventos que ocurren durante la ejecución de una aplicación. Este sistema puede ser utilizado para fines de depuración, seguimiento de errores y auditoría.
En este tutorial, aprenderemos a configurar y utilizar Django Log para registrar eventos en aplicaciones Django.
Configuración de Django Log
Para configurar Django Log, debemos editar el archivo settings.py
de nuestra aplicación. En este archivo, debemos agregar la siguiente configuración:
# settings.py
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
"formatters": {
"verbose": {
"format": "[%(levelname)s] - %(asctime)s - %(module)s - %(message)s",
},
"simple": {
"format": "[%(levelname)s] - %(message)s",
},
},
"handlers": {
"console": {
"level": "INFO",
"class": "logging.StreamHandler",
"formatter": "simple",
},
},
"loggers": {
"django": {
"handlers": ["console"],
"level": "INFO",
},
},
}
Esta configuración establece el nivel de registro predeterminado en INFO
, lo que significa que solo se registrarán los mensajes de nivel INFO
o superior. También configura un manejador de registro para la consola que formatea los mensajes de registro en un formato simple.
Registro de eventos
Una vez que Django Log esté configurado, podemos comenzar a registrar eventos. Para ello, podemos utilizar la función logger.debug()
, logger.info()
, logger.warning()
, logger.error()
o logger.critical()
.
Por ejemplo, el siguiente código registrará un mensaje de INFO
:
# views.py
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
logger.info("La página de inicio se ha cargado")
return HttpResponse("Hola, mundo!")
Este código registrará el siguiente mensaje en el archivo de registro:
[INFO] - 2023-07-20 12:00:00 - views - La página de inicio se ha cargado
Podemos personalizar los mensajes de registro proporcionando información adicional como el usuario que realizó la acción, el modelo afectado o el valor de un campo. Por ejemplo, el siguiente código registrará un mensaje de WARNING
que incluye el nombre del usuario que inició sesión:
# views.py
from django.contrib.auth.models import User
def login(request):
user = User.objects.get(username=request.user.username)
logger.warning("El usuario %s ha iniciado sesión", user.username)
return HttpResponse("Has iniciado sesión con éxito")
Este código registrará el siguiente mensaje en el archivo de registro:
[WARNING] - 2023-07-20 12:00:00 - views - El usuario mario ha iniciado sesión
Ver los registros
Los registros de Django se almacenan en un archivo de registro que se encuentra en la carpeta logs
del proyecto. Podemos ver los registros utilizando un visor de registros como tail
o logstash
.
Por ejemplo, el siguiente comando mostrará los últimos 100 registros:
tail -f logs/django.log
Conclusión
Django Log es una herramienta útil para registrar eventos que ocurren durante la ejecución de una aplicación Django. Este sistema puede ser utilizado para fines de depuración, seguimiento de errores y auditoría.
En este tutorial, hemos aprendido a configurar y utilizar Django Log para registrar eventos en aplicaciones Django.