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.
- 🎨 Styling dual — CSS
%ccon 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 + verbosity —
trace < debug < info < warn < error < critical(+silent).tracealineado con la banda TRACE de OpenTelemetry (severity 1-4). - 🧩 Log context (MDC) — bindings persistentes con
child()o scoped viaAsyncLocalStorageconwithContext(bindings, fn). Se mergean enTransportRecord.attributes. - 📡 Transports —
FileTransport(async, bounded buffer),HttpTransport(batching + retry exponencial),OtlpTransport(OTLP/HTTP → SigNoz y otros backends). Custom viaITransport. - 🪝 Hooks awaited —
beforeLog(mutación reflejada en el mensaje),afterLog(métricas fire-and-forget), middleware Koa-style conuse(). Ideales para redacción PII. - 🧬 Serializers por tipo —
addSerializer(Error, fn),addSerializer(User, fn). Defaults paraError/Date/Map/Set/Buffer/RegExp. - 🏷️ Scoped loggers —
scope('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 ready —
severityNumber/severityText/traceId/spanId/attributes/resourceen cadaTransportRecord.
npm install @mks2508/better-logger
# o
bun add @mks2508/better-loggerimport 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áticamenteMás métodos sueltos:
import { info, success, error, trace } from '@mks2508/better-logger';
info('Proceso iniciado');
success('✓ Completado');| 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 |
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- ✅ Browsers modernos — soporte completo (CSS, DevTools,
localStoragefallback) - ✅ Node.js — core + transports (File async, HTTP, OTLP)
- ✅ TypeScript — definiciones completas, cero
anyen superficie pública - ✅ ESM & CommonJS — ambos exports; subpath layout (
./transports,./context,./hooks,./serializers,./styles,./cli,./playground,./core)
MIT — ver LICENSE.