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 logmonitor
python manage.py migrate logmonitor

(Opcional) Personaliza el AdminSite: Solo 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.2.tar.gz (18.4 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.2-py3-none-any.whl (24.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: django_logmonitor-1.2.2.tar.gz
  • Upload date:
  • Size: 18.4 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.2.tar.gz
Algorithm Hash digest
SHA256 9e3744175d4f5c3aafaf6b05a244afba148a49915894caa6a8e3c26fce0c7a95
MD5 d0698064983fd9bf5b59b47fe645eced
BLAKE2b-256 41ec9daa56d2b08c74fcfb86504edc1ac1e1fe8d403ed8574a856c82c462437b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_logmonitor-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 aa8d2f2b03587e1d534886e83ec8077ae0c91ec54e3c93cc75296803eba5448a
MD5 40a63d3acee20563d9ed65937dcb6b36
BLAKE2b-256 11f47b07727103f00edf07ac2e83b93012a7ff06a3a861a5c0375602b7ff98d3

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