Skip to content

Repository files navigation

splitlog

A developer tool that supercharges debug by routing logs over UDP and visualizing them in a multi-pane CLI interface.

splitlog helps separate and monitor logs from multiple services or modules with ease by using logical channels, dynamic port mapping, and structured JSON output.


Features

  • Tiny Logging Library
    Pipe logs over UDP with ease, from any debug logger.

  • CLI Log Monitor
    Real-time multi-tab terminal UI using blessed, showing logs per channel.

  • Channel Registry
    Auto-discovers ports via a naming registry (/tmp/splitlog_channel), so clients don’t need to know port info up front.

  • JSON Mode
    Supports structured logging for better parsing and formatting.


Use Cases

  • 🧩 Multi-service debugging
  • 🔀 Frontend/backend log separation
  • 🧹 Cleaner, isolated dev environments
  • 🧪 Live observation of microservices or workers

CLI Monitor Demo


Installation

npm install -g @dsheiko/splitlog

CLI Monitor

Start a UDP listener and terminal UI for logs:

splitlog

Options

-p, --port <number> UDP port to listen on (defaults to first available port)

The CLI will automatically:

  • Start a UDP listener
  • Register the port in /tmp/splitlog_channel
  • Show logs grouped by channels in separate panes

Logger Usage

importdebugfrom"debug";importsplitlogfrom"@dsheiko/splitlog";constlogApp=splitlog(debug("APP"));constlogDb=splitlog(debug("DB"));constlogError=splitlog(debug("ERROR"));logApp("Application started");logDb("Connected to database");logError("Failed to fetch user data",{userId: 42,error: "User not found"});

API

splitlog(debugNamespaceLogger: Function,options?: {port?: number,host?: string}): Function

If no options are provided, the logger reads the current listener port from /tmp/splitlog_channel.


Contributing

PRs welcome! If you want to suggest a feature or report a bug, please open an issue.

About

A minimalistic logger transport that forwards debug logs over UDP and lets you visualize different log channels in separate terminal windows with a simple CLI tool.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages