Skip to content

Latest commit

 

History

135 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 Better Logger

Logger avanzado para consola con estilos CSS, log context tipo MDC, transports (File / HTTP / OTLP→SigNoz), hooks, serializers y CLI integrado. Soporte dual browser/terminal.

NPM Version TypeScript License

✨ Features

  • 🎨 Styling dual — CSS %c con gradientes y sombras en browser, ANSI en terminal. Themes (default/dark/light/neon/minimal/cyberpunk) y Smart Presets (cyberpunk/glassmorphism/minimal/debug/production).
  • 📊 6 niveles + verbositytrace < debug < info < warn < error < critical (+ silent). trace alineado con la banda TRACE de OpenTelemetry (severity 1-4).
  • 🧩 Log context (MDC) — bindings persistentes con child() o scoped via AsyncLocalStorage con withContext(bindings, fn). Se mergean en TransportRecord.attributes.
  • 📡 TransportsFileTransport (async, bounded buffer), HttpTransport (batching + retry exponencial), OtlpTransport (OTLP/HTTP → SigNoz y otros backends). Custom via ITransport.
  • 🪝 Hooks awaitedbeforeLog (mutación reflejada en el mensaje), afterLog (métricas fire-and-forget), middleware Koa-style con use(). Ideales para redacción PII.
  • 🧬 Serializers por tipoaddSerializer(Error, fn), addSerializer(User, fn). Defaults para Error/Date/Map/Set/Buffer/RegExp.
  • 🏷️ Scoped loggersscope('Auth'), component('Database'), api('GraphQL') con badges automáticos y métodos específicos (slow, rateLimit, auth, deprecated).
  • 🖥️ CLI primitives — spinners braille 80ms, boxes ASCII, tablas, steps, headers, dividers. Fallback automático en non-TTY.
  • 🔭 OpenTelemetry readyseverityNumber / severityText / traceId / spanId / attributes / resource en cada TransportRecord.

📦 Instalación

npm install @mks2508/better-logger
# o
bun add @mks2508/better-logger

🚀 Quick Start

import logger from '@mks2508/better-logger';

logger.info('Application started');
logger.warn('High memory usage');
logger.error('Connection failed');

// Loggers hijuelos (request-scoped, persistentes)
const requestLog = logger.child({ requestId: getRequestId() });
requestLog.info('auth ok');   // lleva requestId automáticamente

Más métodos sueltos:

import { info, success, error, trace } from '@mks2508/better-logger';
info('Proceso iniciado');
success('✓ Completado');

📚 Documentación

Página Cubre
Inicio Overview, features, instalación
Transports FileTransport, HttpTransport, OtlpTransport, custom ITransport
Log Context (MDC) child() inmutable vs withContext(bindings, fn) scoped
Hooks & Middleware on/once/off/use, redacción PII, métricas
Serializers addSerializer, defaults, circular refs, depth
Styling Themes, Smart Presets, StyleBuilder chainable, badges
CLI 8 comandos /help//config//themes/... vía logger.cli()
Playground Renderers raw y Logger wrappers para terminales
Core Logger CoreLogger minimal (~360 líneas) para Node/CLI ligeros
Node (reserved) Subpath reservado para futuras features Node-only
Migración 0.18.x Breaking changes desde 1.x–5.x
API Reference TypeDoc generado, 164 archivos

📊 Niveles de log

trace(-1) < debug(0) < info(1) < warn(2) < error(3) < critical(4)

success() emite a nivel info con tag: 'success' para que transports distingan success de info genérico.

logger.setVerbosity('debug');   // trace + debug + info + ...
logger.setVerbosity('warn');    // solo warn, error, critical
logger.setVerbosity('silent');  // nada

🌐 Compatibilidad

  • Browsers modernos — soporte completo (CSS, DevTools, localStorage fallback)
  • Node.js — core + transports (File async, HTTP, OTLP)
  • TypeScript — definiciones completas, cero any en superficie pública
  • ESM & CommonJS — ambos exports; subpath layout (./transports, ./context, ./hooks, ./serializers, ./styles, ./cli, ./playground, ./core)

📄 Licencia

MIT — ver LICENSE.

About

Libreria de logging de uso compartido entre proyectos personales, 100% ts support, custom styling, exportts

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages