Skip to main content

Una aplicación Django para auditar las acciones de los usuarios en tus modelos.

Project description

LogMonitor

License: MIT PyPI version Code style: black

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 2 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',
    ...
]

(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.1.2.tar.gz (18.1 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.1.2-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

File details

Details for the file django-logmonitor-1.1.2.tar.gz.

File metadata

  • Download URL: django-logmonitor-1.1.2.tar.gz
  • Upload date:
  • Size: 18.1 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.1.2.tar.gz
Algorithm Hash digest
SHA256 5de2decef9c2018d28564b745be0153c9e3b25f7229590a666b3291f78864fa4
MD5 3dfb5f699f33688e1dab3b9225b4366c
BLAKE2b-256 01cb8572924c69fe3e2b32285064dd051793fec8d461e5b405f48d0ca600301b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for django_logmonitor-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 72bce128605e4ad17e3d3188c8c913a682f9b488f2e8924a428a1e1fe9b40550
MD5 1e553b912b25ba62b7620334ff93eb2a
BLAKE2b-256 bb7c799c2769d88b2abc9bdb9e350613ba1d3cb97a730ccdb9bf840d603f6d34

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