Registro de eventos en aplicaciones Django con Django Log

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:

Python
# 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:

Python
# 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:

Python
# 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.