Skip to content

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.

Notifications You must be signed in to change notification settings

dsheiko/splitlog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

import debug from "debug";
import splitlog from "@dsheiko/splitlog";

const logApp = splitlog( debug( "APP" ) );
const logDb = splitlog( debug( "DB" ) );
const logError = 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

Watchers

Forks

Releases

No releases published

Packages

No packages published