Highlight log lines that matter — errors, leaked secrets, stack traces — right in the terminal.
journalctl -f | flashlog
cargo build 2>&1 | flashlog
tail -f /var/log/nginx/error.log | flashlogflashlog reads text from standard input one line at a time. Ordinary lines pass through unchanged; suspicious lines receive a label and terminal highlighting. It is a heuristic filter: it helps surface likely problems and credentials, but it does not interpret or fix the program that produced them.
- FATAL — panics, segmentation faults, and core dumps
- SECRET — AWS keys, common
sk-…,ghp_…and Slack tokens, bearer credentials, plaintext password fields, and private key headers - error — common error words, non-zero exit status, and build failures
- trace — common stack trace frames and source file locations
--onlyprints only suspicious lines.--jsonemits suspicious lines as JSON objects withkind,line,file, andline_numberfields. Ordinary lines are omitted.-hor--helpprints usage.
For example, to inspect only matching lines from today's journal:
journalctl --since today | flashlog --onlyTo feed a command's standard output and standard error through flashlog:
cargo build 2>&1 | flashlogBuild the release binary with Rust and Cargo:
cargo install --path .Or build it locally and put it in a directory on your PATH:
cargo build --release
install -Dm755 target/release/flashlog ~/.local/bin/flashloggit clone https://github.com/horizzon3507/flashlog.git
cd flashlog
cargo build --release
cargo testflashlog is written in Rust, has no runtime service, and uses one dependency (regex). All filtering happens locally; input is not sent over the network.
--color auto|always|nevercontrols color.autocolors only terminal output, andNO_COLORdisables it unless--color alwaysis set.--levels fatal,secret,error,traceincludes only listed categories.--exclude error,traceremoves selected categories.--context Nincludes up to N lines before and after each match. Overlapping windows are printed once.--summarywrites totals and per-category match counts to standard error.- Pass one or more file paths to inspect them directly. Use
-as a file name to read standard input; with no paths, flashlog reads standard input automatically.
File output includes the source path and line number. JSON output contains kind, line, file, and line_number; file is null for standard input. JSON output only includes matching lines, including when --context is used.
flashlog --only --context 2 app.log
flashlog --levels fatal,secret --summary app.log
journalctl -f | flashlog --color never