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
  • Nivel de logging configurable: Soporte para variable de entorno LOG_LEVEL
  • 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 .

Configuración

Nivel de Logging

El nivel de logging se puede configurar mediante la variable de entorno LOG_LEVEL. Si no se establece, por defecto es DEBUG.

Niveles disponibles: DEBUG, INFO, WARNING, ERROR, CRITICAL

Ejemplos de configuración:

En Linux/macOS:

export LOG_LEVEL=INFO
python tu_aplicacion.py

En Windows (Command Prompt):

set LOG_LEVEL=INFO
python tu_aplicacion.py

En Windows (PowerShell):

$env:LOG_LEVEL = 'INFO'
python tu_aplicacion.py

En un script Python:

import os
os.environ['LOG_LEVEL'] = 'WARNING'
import logger_tracker  # Importar después de configurar la variable

En un archivo .env (usando python-dotenv):

pip install python-dotenv
from dotenv import load_dotenv
load_dotenv()

import logger_tracker

Archivo .env:

LOG_LEVEL=INFO

En Docker:

ENV LOG_LEVEL=WARNING

En docker-compose.yml:

services:
  tu_app:
    environment:
      - LOG_LEVEL=ERROR

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
  • Nivel de logging configurable: Control del nivel mediante variable de entorno LOG_LEVEL
  • 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.10.tar.gz (4.5 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.10-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: logger_tracker-1.0.10.tar.gz
  • Upload date:
  • Size: 4.5 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.10.tar.gz
Algorithm Hash digest
SHA256 0c59abb2d5a6628ebae3c529097ebb080053307446d0ae00a455119c0b0890e5
MD5 f8d237c7325dd902969fe9123bc6feaf
BLAKE2b-256 145654ed88a29a5415db16d8fc7035145877de96f87c157c6d5eb7245af3e2a8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: logger_tracker-1.0.10-py3-none-any.whl
  • Upload date:
  • Size: 5.3 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.10-py3-none-any.whl
Algorithm Hash digest
SHA256 87f0381793b5c8a66e8f94501f2cc8bfcddaa6c32f15d022137716b38f365e02
MD5 cf707606b6d4271cdbbc16101e24b9a5
BLAKE2b-256 4c4745d2c5edbfca7e5f6253a1a543fb09e97d308cc193b30a6baa2cce0529bc

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