
What is this
A log parser for the terminal that does what you actually want. Color-codes severity levels, filters by time range, regex searches, gives you stats, handles JSON logs, and follows files in real-time.
Install
From source (requires Rust):
Prebuilt binaries — grab the latest from Releases.
Usage
# just color-code a log file
# filter by severity
# regex search
# time range
# combine filters
# stats summary
# follow mode (like tail -f with filtering)
# pipe from stdin
|
|
# context lines (like grep -C/-B/-A)
# compressed logs
# multiple files
# other stuff
Features
Severity detection
Picks up log levels from [ERROR], level: error, {"level": "error"}, and color-codes them automatically.

Time ranges & regex
Handles bracketed datetimes, ISO 8601, syslog format, and JSON timestamp fields. The --from / --to flags are flexible. Combine with -p for regex pattern matching with highlighted results.
"2026-02-24 11:00:00" full datetime
"2026-02-24" date (starts at midnight)
"11:00" time (assumes today)

Stats
Line counts, time span, severity breakdown, and top recurring errors.

Pipes into anything
Works with stdin so you can pipe from kubectl, journalctl, docker logs, or anything else.

Follow mode
Like tail -f but with all filtering and coloring applied. Uses filesystem events (kqueue/inotify) so it's not polling.
Context lines
Show surrounding lines around matches, just like grep -C:
Compressed logs
Reads .gz files directly — no need to decompress first:
JSON logs
Parses structured JSON logs (one object per line), extracts message/level/timestamp fields, and displays the rest as key=value pairs.
Config file
Create .loggrep.toml in your project or ~/.config/loggrep/config.toml for defaults:
= true
= "warn+"
Shell completions
Generate completions for your shell:
License
MIT