A fast terminal log viewer for files of any size — including multi-GB logs. Built on memory-mapped I/O and SIMD line indexing. Auto-detects log formats, filters by pattern, regex, field value, or date range — bookmark lines, add annotations, and export your analysis.
- Auto-detected log formats — JSON, syslog, journalctl, logfmt, OpenTelemetry, DLT (AUTOSAR), and more
- Filtering — include/exclude patterns (literal or regex), date-range filters, field-scoped filters; add filters from the command line with
-i/-o/-t - Persistent sessions — filters, scroll position, marks, and annotations survive across runs; configurable restore policy (ask / always / never)
- Structured field view — parsed timestamps, levels, targets, and extra fields displayed in columns; select which columns you want visible
- Vim-style navigation —
j/k,gg/G,Ctrl+d/u, count prefixes (5j,10G),/search,e/werror/warning jumps - Annotations — attach comments to log lines; export analysis to Markdown or Jira
- Value coloring — HTTP methods, status codes, IP addresses, and UUIDs colored automatically
- OTel collector — receive OpenTelemetry logs in real time over gRPC or HTTP/JSON; compatible with any OTel SDK
- Multi-tab — open multiple files, Docker streams, DLT daemon connections, or OTel collector tabs; each tab has independent filters and session state
- MCP server — embedded Model Context Protocol server; expose marks and annotations to AI assistants
- Headless mode — run the full filter pipeline without a TUI to preprocess huge logs
- Fully configurable — all keybindings remappable via
~/.config/logana/config.json; 22 bundled themes
Download from the Releases page, or use the install script:
Linux / macOS
curl -fsSL https://github.com/pauloremoli/logana/releases/latest/download/install.sh | shWindows (PowerShell)
irm https://github.com/pauloremoli/logana/releases/latest/download/install.ps1 | iexbrew tap pauloremoli/logana
brew install loganacargo install logana# Open a file
logana app.log
# Open a directory (each file opens in its own tab)
logana /var/log/
# Pipe from stdin
journalctl -f | logana
# Start at the end and follow new lines
logana app.log --tail
# Stream a Docker container
logana # then type :docker
# Receive OpenTelemetry logs over gRPC (port 4317)
logana # then type :otel
# Add inline filters on the command line
logana app.log -i error -o debug
logana app.log -i "--field level=ERROR" -t "> 2024-02-21"
# Headless — filter without the TUI, output to stdout or a file
logana app.log --headless -i error -o debug
logana app.log --headless -i error --output filtered.logFull documentation is at pauloremoli.github.io/logana.
