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 loggingattach_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:
- Fork el repositorio
- Crea una rama para tu feature
- Ejecuta los tests:
pytest - 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef8c9824716222ee589fe1ae9370d860dfb8bf7c9fa32fd3a9d62df89dc1720e
|
|
| MD5 |
0f94999c46fef57f3da3e796a34f60d8
|
|
| BLAKE2b-256 |
7676d8b7c248b161509df34bbcfa2a9622e0ad4c81d821b653cba8787345f155
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
873cdb83c7d303f415bdcee2a9901578399a6fa0043323ef2acb95620ec027a9
|
|
| MD5 |
b60914b6f36206f9ba849f54b27ef933
|
|
| BLAKE2b-256 |
ed8f5abf9d456bd887438de2ec261973fca90232c992ac6eb3811d9a1d63928c
|