Konsole works in browser and Node.js. It automatically picks the best output format for each environment and stores every log in a circular buffer for later inspection.
📊
Structured logging
Every entry carries msg, fields, level, levelValue, namespace and timestamp — compatible with Datadog, Loki, and any log aggregator.
🏷️
Child loggers
logger.child({ requestId }) creates an ephemeral child that injects context into every line it produces. Bindings accumulate through nesting.
🎨
Auto formatting
TTY terminal → ANSI pretty. Pipe / CI → NDJSON. Browser → styled %c badges. One format: 'auto' option handles it all.
🚚
Transports
HttpTransport, FileTransport, StreamTransport, ConsoleTransport. Add multiple to one logger. Filter and transform per transport.
💾
Circular buffer
maxLogs: 1000 keeps only the last 1000 entries in memory — no unbounded growth in long-running apps.
⚡
Web Worker
useWorker: true offloads storage and HTTP transport to a background thread — keeps the main thread free in high-volume browser apps.