Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/todoesverso/logss
- Owner: todoesverso
- License: mit
- Created: 2022-12-15T12:46:28.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-12-15T03:49:29.000Z (about 1 year ago)
- Last Synced: 2023-12-15T21:43:40.104Z (about 1 year ago)
- Topics: cli, rust, tui-rs
- Language: Rust
- Homepage:
- Size: 8.33 MB
- Stars: 114
- Watchers: 3
- Forks: 4
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ratatui - logss - A simple cli for logs splitting. (💻 Apps / 👨💻 System Administration)
README
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 wayUsage: 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