Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/todoesverso/logss

A simple cli for logs splitting
https://github.com/todoesverso/logss

cli rust tui-rs

Last synced: about 2 months ago
JSON representation

A simple cli for logs splitting

Awesome Lists containing this project

README

        




logss




logs splitter

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

![screenshot](./assets/gifs/complete.gif)








Key Features
Usage
Installation
Download
Roadmap
License

## 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

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

Usage: logss [OPTIONS]

Options:
-c Specify substrings (regex patterns)
-e Exit on empty input [default: false]
-s Start in single view mode [default: false]
-C Get input from a command
-f Input configuration file (overrides CLI arguments)
-o Specify the output path for matched patterns
-r Define render speed in milliseconds [default: 100]
-t 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 ' or '-c , , '
$ 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.

```shell
cargo install logss
```

If cargo is not a possibility then download pre compiled binaries from the [download](#download) section.

### Arch Linux (AUR)

You can install `logss` from the [AUR](https://aur.archlinux.org/packages/logss) with using an [AUR helper](https://wiki.archlinux.org/title/AUR_helpers).

```shell
paru -S logss
```

### eget
You can install the pre build binaries using [eget](https://github.com/zyedidia/eget)

```shell
eget todoesverso/logss
```

## Download

Pre compiled binaries for several platforms can be downloaded from the [release](https://github.com/todoesverso/logss/releases) 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