Skip to main content

LogScope — Beautiful log viewer for the terminal

Project description

LogScope Logo

LogScope

Beautiful, simple, and powerful log viewer for the terminal.

Python Typer Rich License

A modern CLI tool that turns boring text logs or messy JSON lines into stunning, structured, and colorful terminal outputs—complete with a live dashboard, smart highlighting, and HTML exporting.


Features that shine

  • Fast & Lightweight: Tail files natively or stream huge data directly via pipes (cat server.log | logscope).
  • Colored & Structured Logs: Automatically identifies INFO, WARNING, ERROR, CRITICAL, and DEBUG, applying beautiful typography.
  • Universal Parser: Reads typical bracket logs ([INFO]) and parses modern NDJSON / JSON logs out of the box (e.g., Kubernetes, Docker).
  • Auto-Highlighting: Magically highlights IPs, URLs, Dates/Timestamps, UUIDs, and E-Mails with dynamic colors.
  • Custom Keyword Highlighting: Highlight specific keywords in log messages with --highlight and customize colors with --highlight-color.
  • Live Dashboard: Watch logs stream in real-time alongside a live statistics panel keeping track of Error vs Info counts (--dashboard).
  • HTML Export: Loved your console output so much you want to share it? Export the beautiful log structure directly to an HTML file to share with your team! (--export-html results.html)
  • Filtering: Filter by one or more levels (--level ERROR or --level ERROR,WARN,INFO). Search by substring (--search) or regular expression (--regex / -e), with optional case-sensitive matching and invert match (--invert-match / -v, grep-style) to hide matching lines.
  • Themes: Choose from 6 beautiful themes (default, neon, ocean, forest, minimal, spectra) or create custom themes via config file.
  • Plain output: Use --no-color when you need unstyled text (e.g. piping to other tools or logs without ANSI codes).
  • Gzip logs: Read .gz files directly—LogScope opens them as text without a manual zcat pipe.

Installation

Ensure you have Python 3.9+ and pip installed.

# Clone the repository
git clone https://github.com/vinnytherobot/logscope.git
cd logscope

# Install via Poetry
poetry install
poetry run logscope --help

# Or install globally via pip
pip install -e .

Usage & Examples

Using a File

# Basic colorized look
logscope /var/log/syslog

# Tailing a log in real-time (like tail -f)
logscope backend.log --follow

# Filter only errors
logscope production.log --level ERROR

# Multiple levels (comma-separated)
logscope production.log --level ERROR,WARN,INFO

# Search text dynamically
logscope server.log --search "Connection Timeout"

# Regex search (requires --search)
logscope server.log --search "timeout|refused|ECONNRESET" --regex

# Hide lines that match a pattern
logscope noisy.log --search "healthcheck" --invert-match

# Case-sensitive search
logscope app.log --search "UserID" --case-sensitive

# Highlight specific keywords
logscope server.log --highlight "timeout" --highlight-color "bold red"

# No colors (plain terminal output)
logscope app.log --no-color

# Compressed log file
logscope archive/app.log.gz

Piping from other commands (Stdin support)

LogScope acts as a brilliant text reformatter for other tools!

kubectl logs my-pod -f | logscope
docker logs api-gateway | logscope --level CRITICAL
cat nginx.log | grep -v GET | logscope --dashboard

The Live Dashboard Mode

Monitor your logs like a pro with a live dashboard tracking error occurrences.

logscope app.log --dashboard --follow

Exporting to HTML

Need to attach the logs to a Jira ticket or Slack message but want to keep the formatting?

logscope failed_job.log --export-html bug_report.html

Themes

Choose from 6 beautiful themes: default, neon, ocean, forest, minimal, spectra.

logscope app.log --theme neon

Create a .logscoperc file to set your preferred theme:

{
  "theme": "neon",
  "custom_themes": {
    "my-theme": {
      "levels": {
        "ERROR": ("✖", "bold red")
      }
    }
  }
}

Stack

  • Rich -> UI Layouts, Colors, Highlighters, HTML Export.
  • Typer -> Modern, fast, and robust CLI creation.
  • typing-extensions -> Typed CLI annotations on Python 3.9.
  • Pathlib / Sys / gzip -> File and standard input streaming; gzip text logs.

Contributing

Open an issue or submit a pull request! Tests are written using pytest.

# Running tests
pytest tests/

License

MIT License.

Made by vinnytherobot

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

logscope_cli-0.4.1.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

logscope_cli-0.4.1-py3-none-any.whl (15.6 kB view details)

Uploaded Python 3

File details

Details for the file logscope_cli-0.4.1.tar.gz.

File metadata

  • Download URL: logscope_cli-0.4.1.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for logscope_cli-0.4.1.tar.gz
Algorithm Hash digest
SHA256 bef2cf5f55dcf1d37d588fe91639828b15c1d7d3d16d09812bf0ae48e555b173
MD5 065c051d9db5ac27252c20d22e0af5d0
BLAKE2b-256 caae10bfaf0f69b15342dc5e04bc9e10fd17b5f5316f826308d93aee893db51a

See more details on using hashes here.

File details

Details for the file logscope_cli-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: logscope_cli-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 15.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for logscope_cli-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 84de329d136c5a332e00237523c8d18d24fc80eaf5b96f40aa93295fe20664f6
MD5 5d0227a01f302338ac1f3773452c4b87
BLAKE2b-256 5cb0b5764669d73dfef05fb11c51decbc08b513c84db7efc1c40cc6552c26676

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page