Skip to main content

Libreria estandar para manejo de logs estandar

Project description

Logger Tracker

Una librería de logging estandarizada para Python que proporciona trazabilidad mediante UUIDs únicos por hilo de ejecución, con soporte para salida enriquecida en consola.

Descripción

Logger Tracker es un módulo de logging diseñado para entornos concurrentes y aplicaciones web. Proporciona:

  • UUIDs únicos por hilo: Cada log incluye un identificador único para trazabilidad en entornos multi-hilo
  • Salida enriquecida: Usa Rich para tracebacks y formateo mejorado en consola
  • Configuración automática: Se configura al importar el módulo
  • API simple: Funciones de logging estandarizadas con acceso directo
  • Integración con frameworks: Soporte nativo para Flask/Werkzeug

Instalación

Instala desde PyPI:

pip install logguer-tracker

O desde el código fuente:

git clone https://github.com/tu-usuario/logguer-tracker.git
cd logguer-tracker
pip install -e .

Uso Básico

Importación y configuración automática

Simplemente importa el módulo para configurar el logging automáticamente:

import logger_tracker

# El logging ya está configurado con UUIDs y Rich handler

Uso de la API principal

from logger_tracker import get_logger

# Obtener un logger con funciones de logging
logger = get_logger("mi_modulo")

logger["info"]("Mensaje informativo")
logger["debug"]("Mensaje de debug")
logger["warning"]("Mensaje de advertencia")
logger["error"]("Mensaje de error")
logger["critical"]("Mensaje crítico")

Uso de funciones legacy

Para compatibilidad con código existente:

from logger_tracker import logg_info, logg_debug, logg_warning, logg_error, logg_critical

logg_info("Mensaje informativo")
logg_debug("Mensaje de debug")
logg_warning("Mensaje de advertencia")
logg_error("Mensaje de error")
logg_critical("Mensaje crítico")

Características

  • Thread-safe: UUIDs únicos por hilo de ejecución
  • Trazabilidad: Cada log incluye un UUID para seguimiento
  • Salida enriquecida: Tracebacks coloreados y formateados con Rich
  • Configuración automática: No requiere configuración manual
  • Integración con Flask: Soporte automático para logging de Werkzeug
  • API flexible: Tanto dict-based como funciones directas

API

Funciones principales

  • setup_logging(): Configura el sistema de logging (llamado automáticamente al importar)
  • get_logger(name: str) -> dict: Devuelve un diccionario con funciones de logging
  • attach_logger_to_werkzeug(): Integra el logging con Flask/Werkzeug

Funciones legacy

  • logg_info(message)
  • logg_debug(message)
  • logg_warning(message)
  • logg_error(message)
  • logg_critical(message)

Ejemplos

En una aplicación Flask

from flask import Flask
from logger_tracker import get_logger, attach_logger_to_werkzeug

app = Flask(__name__)

# Configurar logging para Flask
attach_logger_to_werkzeug()

logger = get_logger("flask_app")

@app.route('/')
def hello():
    logger["info"]("Solicitud a la ruta principal")
    return "Hello World!"

if __name__ == '__main__':
    app.run()

En un script multi-hilo

import threading
import time
from logger_tracker import get_logger

def worker(worker_id):
    logger = get_logger(f"worker_{worker_id}")
    logger["info"](f"Trabajador {worker_id} iniciado")
    time.sleep(1)
    logger["info"](f"Trabajador {worker_id} finalizado")

# Crear múltiples hilos
threads = []
for i in range(3):
    t = threading.Thread(target=worker, args=(i,))
    threads.append(t)
    t.start()

for t in threads:
    t.join()

Cada hilo tendrá su propio UUID en los logs, permitiendo trazabilidad completa.

Formato de salida

Los logs se muestran en el formato:

[UUID] Mensaje

Ejemplo:

[550e8400-e29b-41d4-a716-446655440000] Aplicación iniciada
[550e8400-e29b-41d4-a716-446655440000] Procesando solicitud
[6ba7b810-9dad-11d1-80b4-00c04fd430c8] Nuevo hilo iniciado

Requisitos

  • Python >= 3.13
  • rich
  • pytest (para tests)

Licencia

Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.

Contribución

Para contribuir:

  1. Fork el repositorio
  2. Crea una rama para tu feature
  3. Ejecuta los tests: pytest
  4. Envía un pull request

Soporte

Para reportar bugs o solicitar features, usa los issues de GitHub.

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

logger_tracker-1.0.9.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

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

logger_tracker-1.0.9-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file logger_tracker-1.0.9.tar.gz.

File metadata

  • Download URL: logger_tracker-1.0.9.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.13.12 Linux/5.15.154+

File hashes

Hashes for logger_tracker-1.0.9.tar.gz
Algorithm Hash digest
SHA256 ef8c9824716222ee589fe1ae9370d860dfb8bf7c9fa32fd3a9d62df89dc1720e
MD5 0f94999c46fef57f3da3e796a34f60d8
BLAKE2b-256 7676d8b7c248b161509df34bbcfa2a9622e0ad4c81d821b653cba8787345f155

See more details on using hashes here.

File details

Details for the file logger_tracker-1.0.9-py3-none-any.whl.

File metadata

  • Download URL: logger_tracker-1.0.9-py3-none-any.whl
  • Upload date:
  • Size: 4.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.4 CPython/3.13.12 Linux/5.15.154+

File hashes

Hashes for logger_tracker-1.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 873cdb83c7d303f415bdcee2a9901578399a6fa0043323ef2acb95620ec027a9
MD5 b60914b6f36206f9ba849f54b27ef933
BLAKE2b-256 ed8f5abf9d456bd887438de2ec261973fca90232c992ac6eb3811d9a1d63928c

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