{"id":13586955,"url":"https://github.com/todoesverso/logss","last_synced_at":"2025-04-07T18:35:22.830Z","repository":{"id":136590466,"uuid":"578600097","full_name":"todoesverso/logss","owner":"todoesverso","description":"A simple cli for logs splitting","archived":false,"fork":false,"pushed_at":"2023-12-15T03:49:29.000Z","size":8732,"stargazers_count":114,"open_issues_count":2,"forks_count":4,"subscribers_count":3,"default_branch":"main","last_synced_at":"2023-12-15T21:43:40.104Z","etag":null,"topics":["cli","rust","tui-rs"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/todoesverso.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2022-12-15T12:46:28.000Z","updated_at":"2023-12-29T19:40:09.617Z","dependencies_parsed_at":"2023-12-20T16:09:06.747Z","dependency_job_id":null,"html_url":"https://github.com/todoesverso/logss","commit_stats":null,"previous_names":[],"tags_count":8,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/todoesverso%2Flogss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/todoesverso%2Flogss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/todoesverso%2Flogss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/todoesverso%2Flogss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/todoesverso","download_url":"https://codeload.github.com/todoesverso/logss/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223290308,"owners_count":17120886,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","rust","tui-rs"],"created_at":"2024-08-01T15:05:55.940Z","updated_at":"2024-11-06T05:30:57.803Z","avatar_url":"https://github.com/todoesverso.png","language":"Rust","funding_links":[],"categories":["Rust","💻 Apps"],"sub_categories":["👨‍💻 System Administration"],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"assets/logo.svg\" alt=\"logss\" width=\"400\"\u003e\n  \u003cbr\u003e\n  \u003cbr\u003e\n\u003c/h1\u003e\n\n\u003ch5 align=\"center\"\u003elogs splitter\u003c/h5\u003e\n\u003ch4 align=\"center\"\u003eA simple command line tool that helps you visualize an input stream of text.\u003c/h4\u003e\n\n![screenshot](./assets/gifs/complete.gif)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/todoesverso/logss/actions/workflows/ci.yaml/badge.svg\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square\"\u003e\n  \u003ca href=\"https://codecov.io/gh/todoesverso/logss\" \u003e\n    \u003cimg src=\"https://codecov.io/gh/todoesverso/logss/branch/main/graph/badge.svg?token=G6JEXYQQO0\"/\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#key-features\"\u003eKey Features\u003c/a\u003e •\n  \u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e •\n  \u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e •\n  \u003ca href=\"#download\"\u003eDownload\u003c/a\u003e •\n  \u003ca href=\"#roadmap\"\u003eRoadmap\u003c/a\u003e •\n  \u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\n\u003c/p\u003e\n\n## Key Features\n\n* Select render/stream speed\n* Automatic color assigned to each string match\n* Vertical and Horizontal view\n* Pause and continue stream\n* Scroll Up/Down\n* Delete containers on runtime\n* Add new containers on runtime\n* Dedicated container for raw stream\n* Toggle line wrapping\n* Zoom into a specific container\n* Containers Show/Hide \n* Support for regexp\n* Support for configuration file\n* Support for explicit command (no need to pipe into it)\n* Send all matched lines to dedicated files\n* Consolidated view with highlighted items\n* Simple BarChart popup with counts\n* Support to trigger shell commands (thru 'bin/sh') fir each match\n  * The line matched can be replaced in the command to execute (__line__)\n  * Timeout for each trigger\n  * Configurable number of threads for each container\n\n\n## Usage\n\n  ```sh\n  $ logss -h\n  Simple CLI command to display logs in a user-friendly way\n\n  Usage: logss [OPTIONS]\n\n  Options:\n    -c \u003cCONTAINERS\u003e  Specify substrings (regex patterns) \n    -e               Exit on empty input [default: false]\n    -s               Start in single view mode [default: false]\n    -C \u003cCOMMAND\u003e     Get input from a command\n    -f \u003cFILE\u003e        Input configuration file (overrides CLI arguments)\n    -o \u003cOUTPUT_PATH\u003e Specify the output path for matched patterns\n    -r \u003cRENDER\u003e      Define render speed in milliseconds [default: 100]\n    -t \u003cTHREADS\u003e     Number of threads per container for triggers [default: 1]\n    -V               Start in vertical view mode\n    -h               Print help\n\n  $ cat shakespeare.txt | logss -c to -c be -c or,'echo or_found \u003e\u003e /tmp/or.log',1 -c 'in.*of'\n  $ #  The containers can be a simple '-c \u003cregex\u003e' or '-c \u003cregex\u003e, \u003ccommand\u003e, \u003ccommand timeout\u003e'\n  $ cat real_curl_example.yaml\n    command:\n      - curl\n      - -s\n      - https://raw.githubusercontent.com/linuxacademy/content-elastic-log-samples/master/access.log\n    render: 75\n    containers:\n      - re: GET\n        trigger: echo $(date) \u003e\u003e /tmp/get.log\n        timeout: 4\n      - re: \"404\"\n        trigger: echo __line__ \u003e\u003e /tmp/404.log\n        timeout: 4\n      - \".*ERROR|error.*\"\n  $ logss -f real_curl_example.yaml \n  ```\n\n## Installation\n\nSo far only available in crates.io.\n\n```shell\ncargo install logss\n```\n\nIf cargo is not a possibility then download pre compiled binaries from the [download](#download) section.\n\n### Arch Linux (AUR)\n\nYou can install `logss` from the [AUR](https://aur.archlinux.org/packages/logss) with using an [AUR helper](https://wiki.archlinux.org/title/AUR_helpers).\n\n```shell\nparu -S logss\n```\n\n### eget\nYou can install the pre build binaries using [eget](https://github.com/zyedidia/eget)\n\n```shell\neget todoesverso/logss\n```\n\n## Download\n\nPre compiled binaries for several platforms can be downloaded from the [release](https://github.com/todoesverso/logss/releases) section.\n\n## Roadmap\n\nThis is just a personal project intended to learn Rust, so things move slowly. \n\nThis is a list of things I plan to do:\n\n* Add documentation (the rust way)\n* Refactoring (as I learn more Rust things)\n* Tests\n* Smart timestamp highlights\n* ... whatever I can think of when I am using it\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftodoesverso%2Flogss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftodoesverso%2Flogss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftodoesverso%2Flogss/lists"}