pamburus / hl
A fast and powerful log viewer and processor that converts JSON logs or logfmt logs into a clear human-readable format.
View on GitHubAI Architecture Analysis
This repository is indexed by RepoMind. By analyzing pamburus/hl in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewhl [![Build Status][ci-img]][ci] [![Coverage Status][cov-img]][cov] [![Release][release-img]][release] High-performance log viewer and processor that transforms logs in JSON and logfmt formats into a human-readable output. Built with efficiency in mind, it enables quick parsing and analysis of large log files with minimal overhead. Features overview • __Automatic Pager Integration__: Automatically integrates with a pager for enhanced convenience, defaulting to less if available, but fully supporting any compatible pager. • __Log Streaming Mode__: Enable log streaming with the flag, which disables the pager. • __Field-Based Filtering__: Filter log records by key/value pairs using the option, with support for hierarchical keys. • __Level Filtering__: Easily filter logs by level with the option. • __Timestamp Range Filtering__: Filter logs by timestamp range using the and options with intuitive formats: • RFC-3339 timestamp format. • Current configured timestamp output format (via the option or environment variable). • User-friendly shortcuts like , , , or relative offsets such as or . • __Field Visibility Control__: Quickly hide or reveal specific fields using the option. • __Empty Field Hiding__: Automatically hide empty fields with the flag. • __Field Expansion__: Control multi-line field and message formatting with the option: • : Compact single-line output with escaped newlines. • : Preserve newlines as-is in the output. • : Automatically expand fields containing multi-line content. • : Expand all fields into structured multi-line format. • __High-Speed Message Sorting__: Achieve lightning-fast message sorting with automatic indexing via the flag. • Performs the initial scan at approximately 2 GiB/s, enabling rapid filtering by timestamp and level without re-scanning. • Efficiently handles hundreds of local files totaling hundreds of gigabytes. • Reindexes large, growing files at speeds up to roughly 10 GiB/s by skipping unmodified blocks. • __Live Follow Mode__: Use the flag for live, timestamp-sorted message updates across multiple sources, with a preview of recent messages via the option. • __Complex Query Support__: Construct custom queries with logical conditions (AND/OR) and additional advanced filtering options. • __Non-JSON Prefix Handling__: Process logs with non-JSON prefixes using the flag. • __Timezone Flexibility__: Displays timestamps in UTC by default while allowing effortless timezone switching with the option or local timezone adjustments using the flag. • __Customizability and Themes__: Fully customizable through configuration files and environment variables, with support for easy theme switching and custom themes. Performance comparison chart Performance comparison with humanlog, hlogf and fblog on a 2.3 GiB log file • See performance section for more details. Installation options macOS • Install using homebrew on macOS Other options • Download and extract using and on macOS • Install using cargo • Download latest release from download page Linux • Download and extract using and on Linux (x86_64) • Install hl package from Arch Linux extra repository Other options • Download and extract using and on Linux (arm64/aarch64) • Install using cargo Windows • Install from Scoop > [!TIP] > It is recommended to use Windows Terminal for better experience. > [!TIP] > To make mouse scrolling work in the less pager, set the environment variable to . > [!IMPORTANT] > Currently, does not provide a built-in pager and relies on external pagers such as less. > However, the build for Windows referenced on the original download page and distributed in the WinGet package manager does not work as expected. > The authors state that they have not tested or verified this build and suggest that you use it at your own risk. > Unfortunately, this build breaks some ANSI escape sequences and does not work properly with and many other programs that use ANSI escape sequences for colors and styles. > It is recommended to install less from the Scoop or Chocolatey package manager. > If you are using Scoop and install by running , it already installs less automatically as a dependency. Just make sure you do not have any other conflicting installations by running in cmd or in powershell. • Download latest release from download page Other options • Install using cargo NixOS • Run using nix or binary package or install with nix profile: or binary package • Install the package from source using nix-flakes Example how to update nix configuration • Install the package with pre-built binaries using nix-flakes Example how to update nix configuration Examples Screenshot See other screenshots Features and usage Concatenation of multiple log files • Concatenate all log files Command Concatenates and displays all files found in the current directory. Support for compressed (bzip2, gzip, xz, zstd) log files • Concatenate all log files including compressed log files Command Concatenates and displays all , , and (will detect compression) files found in . Automatic usage of pager • Use the default pager with the default parameters Command Automatically opens pager with the default parameters. • Override options for default pager Command Opens pager with disabled line wrapping. • Use custom pager Command Opens pager with option. Quick filtering by log level • Errors only Command Displays only error log level messages. • Errors and warnings Command Displays only warning and error log level messages. • Errors, warnings and informational Command Displays all log messages except debug level messages. Using live log streaming • Command Tracks changes in the example.log file and displays them immediately. Flag disables automatic using of pager in this case. Filtering by field values • Command Displays only messages where the field has the value . • Command Displays only messages where the field exists and has a value other than or . • Command Disp…