Skip to main content

Utilidad Django para monitorear y auditar las acciones de los usuarios en tus modelos.

Project description

LogMonitor

License: MIT PyPI version Code style: black Maintenance

Auditoría completa y sencilla para tus modelos Django.

LogMonitor es una potente aplicación Django diseñada para simplificar la auditoría de las acciones de los usuarios en tus modelos. Con un enfoque en la facilidad de uso y la flexibilidad, LogMonitor te permite rastrear cada cambio, asegurando la integridad y la transparencia de tus datos.

✨ Características Destacadas

  • Registro Exhaustivo: Captura cada creación, actualización y eliminación de objetos en tus modelos.
  • Información Detallada: Almacena información crucial como el usuario responsable, la fecha y hora exactas, la dirección IP y el navegador utilizado.
  • Visualización JSON: Muestra los datos anteriores y nuevos en un formato JSON claro y fácil de interpretar, opción "Copiar JSON" para exportaciones de datos.
  • Flexibilidad: Permite excluir modelos y campos específicos de la auditoría para un enfoque personalizado.
  • Panel de Administración Intuitivo: Disfruta de una interfaz de administración personalizable que facilita la gestión y el análisis de los registros.
  • Soporte Multilingüe: Adapta la aplicación a tus necesidades lingüísticas con soporte para múltiples idiomas.
  • Filtrado Avanzado: Utiliza filtros dropdown en el panel de administración para una búsqueda y análisis eficientes de los datos.

🚀 Instalación

Instala LogMonitor con un simple comando:

pip install django-logmonitor

🛠️ Configuración en solo 3 pasos

  1. Añade la aplicación: Agrega 'logmonitor' a tu lista de INSTALLED_APPS en settings.py.
INSTALLED_APPS = [
    ...
    'logmonitor',
]
  1. Activa el Middleware: Incluye logmonitor.middleware.RequestMiddleware en tu configuración de MIDDLEWARE.
MIDDLEWARE = [
    'logmonitor.middleware.RequestMiddleware',
    ...
]
  1. Migraciones: Genera y aplica las migraciones necesarias para actualizar la base de datos con los cambios recientes en los modelos
python manage.py makemigrations
python manage.py migrate

(Opcional) Personaliza el AdminSite: Si utilizas un AdminSite personalizado (ej. admin_site), registra el modelo LogMonitor.

from logmonitor import register_logmonitor
from tu_proyecto.admin_site import admin_site  # Reemplaza con tu AdminSite

register_logmonitor(admin_site)

(Opcional) Excluye Modelos y Campos: Define qué modelos y campos excluir de la auditoría en settings.py.

LOGMONITOR_EXCLUDE_MODELS = ['app.Model', 'otra_app.OtroModel']
LOGMONITOR_EXCLUDE_FIELDS = ['fecha_modificacion', 'campo_interno']

NOTA: Por defecto LogMonitor excluye los modelos: Session, LogEntry, MigrationRecorder.Migration; esto para evitar:

  • Registros de auditoría redundantes: El modelo Session registra información sobre las sesiones de los usuarios, y el modelo LogEntry registra las acciones realizadas en el panel de administración de Django. Auditar estos modelos podría generar una gran cantidad de registros irrelevantes y dificultar la búsqueda de información importante.

  • Problemas de recursión: Auditar el modelo LogEntry podría generar un bucle infinito, ya que cada vez que se crea un registro en LogEntry, se activaría la señal post_save, lo que generaría otro registro en LogEntry, y así sucesivamente.

  • Información técnica irrelevante para la mayoría de los usuarios: El modelo MigrationRecorder.Migration registra información sobre las migraciones de la base de datos, que es información técnica que no es relevante para la mayoría de los usuarios.

⚙️ Dependencias

Asegúrate de tener instaladas:

  • Django (>=3.2)

django-admin-list-filter-dropdown (>=1.0): Proporcionada por Mart Sõmermaa. Esta librería facilita la creación de filtros dropdown en el panel de administración de Django, y LogMonitor la incluye para mejorar la experiencia de usuario al filtrar los registros de auditoría. LogMonitor gestiona esta librería internamente, por lo que no es necesario añadirla a tu INSTALLED_APPS a menos que la estés utilizando directamente en otras partes de tu proyecto.

🤝 Contribución

¡Tu ayuda es bienvenida! Si encuentras errores, tienes sugerencias o quieres añadir nuevas características, no dudes en abrir un issue o enviar un pull request.

📄 Licencia

Este proyecto se distribuye bajo la Licencia MIT. Consulta el archivo LICENSE para obtener más detalles.

Hecho con ❤️ por Javier L. Pulido

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_logmonitor-1.2.1.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_logmonitor-1.2.1-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

Details for the file django_logmonitor-1.2.1.tar.gz.

File metadata

  • Download URL: django_logmonitor-1.2.1.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for django_logmonitor-1.2.1.tar.gz
Algorithm Hash digest
SHA256 dd9d6f1c8931005cc674cb7b8945201cd685f26e74dacef0e430db28e7d17491
MD5 02f3c1502d3b9b67866814e974709f9a
BLAKE2b-256 6b9c8f3f0c35fb7c27a6f1d6c8b9c912f701b94415a655f7d9a070b76e5e0115

See more details on using hashes here.

File details

Details for the file django_logmonitor-1.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_logmonitor-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 616579ae32d9751196a80c51af4bd80accfe009f97d6ab27a02478f97896a79b
MD5 967ef6242371c128e54bdb20f8c4f9ff
BLAKE2b-256 1771bcab86332e2e986cdd78460b59ecc1b28443ed821f6d05613e7c3fa2a072

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page