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-0.1.0.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-0.1.0-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: logger_tracker-0.1.0.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-0.1.0.tar.gz
Algorithm Hash digest
SHA256 64d2e586c075a28bb0ad8ad896d7621201ecea0093f6183eb7c41d299689fed5
MD5 6245e7b48ee179b6c074a7c99b445725
BLAKE2b-256 3300906718270aece7be7bf80485d3041f13ce6362d5c5fe1306906eab7e68a6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: logger_tracker-0.1.0-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-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bfe701f6ec41a2c5d1462a373d0ae4407b1d6d27d9eeac42799ef98ddb07a14c
MD5 0ab6679dec2a733dd4c8e24f943afd32
BLAKE2b-256 c958ef72ad3863d5c3073d6a8d7ad85cbf68722aa3d29896a746502c883d27e5

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