Skip to content

todoesverso/logss

Repository files navigation


logss

logs splitter

A simple command line tool that helps you visualize an input stream of text.

screenshot

Key FeaturesUsageInstallationDownloadRoadmapLicense

Key Features

  • Select render/stream speed
  • Automatic color assigned to each string match
  • Vertical and Horizontal view
  • Pause and continue stream
  • Scroll Up/Down
  • Delete containers on runtime
  • Add new containers on runtime
  • Dedicated container for raw stream
  • Toggle line wrapping
  • Zoom into a specific container
  • Containers Show/Hide
  • Support for regexp
  • Support for configuration file
  • Support for explicit command (no need to pipe into it)
  • Send all matched lines to dedicated files
  • Consolidated view with highlighted items
  • Simple BarChart popup with counts
  • Support to trigger shell commands (thru 'bin/sh') fir each match
    • The line matched can be replaced in the command to execute (line)
    • Timeout for each trigger
    • Configurable number of threads for each container

Usage

$ logss -h
Simple CLI command to display logs in a user-friendly way

Usage: logss [OPTIONS]

Options:
  -c <CONTAINERS>  Specify substrings (regex patterns) 
  -e               Exit on empty input [default: false]
  -s               Start in single view mode [default: false]
  -C <COMMAND>     Get input from a command
  -f <FILE>        Input configuration file (overrides CLI arguments)
  -o <OUTPUT_PATH> Specify the output path for matched patterns
  -r <RENDER>      Define render speed in milliseconds [default: 100]
  -t <THREADS>     Number of threads per container for triggers [default: 1]
  -V               Start in vertical view mode
  -h               Print help

$ cat shakespeare.txt | logss -c to -c be -c or,'echo or_found >> /tmp/or.log',1 -c 'in.*of'
$ #  The containers can be a simple '-c <regex>' or '-c <regex>, <command>, <command timeout>'
$ cat real_curl_example.yaml
  command:
    - curl
    - -s
    - https://raw.githubusercontent.com/linuxacademy/content-elastic-log-samples/master/access.log
  render: 75
  containers:
    - re: GET
      trigger: echo $(date) >> /tmp/get.log
      timeout: 4
    - re: "404"
      trigger: echo __line__ >> /tmp/404.log
      timeout: 4
    - ".*ERROR|error.*"
$ logss -f real_curl_example.yaml 

Installation

So far only available in crates.io.

cargo install logss

If cargo is not a possibility then download pre compiled binaries from the download section.

Arch Linux (AUR)

You can install logss from the AUR with using an AUR helper.

paru -S logss

eget

You can install the pre build binaries using eget

eget todoesverso/logss

Download

Pre compiled binaries for several platforms can be downloaded from the release section.

Roadmap

This is just a personal project intended to learn Rust, so things move slowly.

This is a list of things I plan to do:

  • Add documentation (the rust way)
  • Refactoring (as I learn more Rust things)
  • Tests
  • Smart timestamp highlights
  • ... whatever I can think of when I am using it

License

MIT