一款命令行日志查看工具,可将 JSON 和 logfmt 日志转换为易读格式,并支持过滤、排序与实时跟踪。
- Star
- 10,754
- Fork
- 414
- 未关闭 Issue
- 297
- 最近提交
- 4天前
这是什么?
lnav 是一个运行在终端里的日志查看器。给定文件或目录后,它会按需解压、识别日志格式,并把多个文件的日志按时间合并到同一视图中。文件增长时会持续跟踪,文件重命名后也能继续读取,监视的目录中出现新文件时会自动纳入。
在交互界面中,可以快速跳转到上一个或下一个错误和警告,用正则表达式或 SQLite 表达式搜索和过滤,也能用正则高亮特定文本。JSON Lines 等结构化内容支持格式化显示,直方图可查看各时段的日志数量分布。日志消息还可以直接用 SQLite 进行查询分析。
当需要同时处理多个日志时,lnav 可以替代 tail、grep 与 less 的组合。项目提供适用于 Linux、macOS 和 Windows 的静态链接二进制文件,也可通过 Homebrew 和 FreeBSD 的包管理器安装。
核心功能
- 01将多个文件和目录合并到一个按时间排序的视图中。
- 02自动解压文件并识别日志格式。
- 03持续跟踪文件增长与重命名,并自动纳入目录中的新文件。
- 04支持用正则表达式或 SQLite 表达式过滤和搜索。
- 05格式化显示 JSON Lines,并提供消息随时间分布的直方图。
- 06可在查看器内直接用 SQL 查询日志消息。
适用场景
- 同时排查多台服务器日志中的错误。
- 无需手动解压即可阅读轮转或压缩的日志归档。
- 实时查看日志并在警告和错误之间快速跳转。
- 将 journalctl 的输出导入为可浏览的视图。
快速上手
- 1
在 macOS 上用 Homebrew 安装 lnav
brew install lnav - 2
在 FreeBSD 上安装 lnav
pkg install lnav - 3
或从发布页面下载适用于 Linux、macOS 或 Windows 的静态链接二进制文件
- 4
将 lnav 指向你的日志文件或目录
lnav /path/to/file1 /path/to/dir
使用前须知
- 从源码构建需要安装许多依赖,包括 PCRE2、SQLite、libcurl、libarchive 以及 Rust 工具链。
- 读取 pcap 文件依赖 Wireshark 的 tshark 程序。
收录于专题
标签
常见问题
- lnav 是什么?
- 终端日志查看器,可合并、追踪并用正则和 SQL 检索多个日志文件。 lnav 是一个运行在终端里的日志查看器。给定文件或目录后,它会按需解压、识别日志格式,并把多个文件的日志按时间合并到同一视图中。文件增长时会持续跟踪,文件重命名后也能继续读取,监视的目录中出现新文件时会自动纳入。
- lnav 可以免费使用吗?用的什么许可证?
- lnav 以 BSD-2-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
- lnav 还在维护吗?
- 活跃维护中。lnav 最近一次提交是在 2026年10月18日。
- lnav 适合用来做什么?
- 同时排查多台服务器日志中的错误。 无需手动解压即可阅读轮转或压缩的日志归档。 实时查看日志并在警告和错误之间快速跳转。 将 journalctl 的输出导入为可浏览的视图。
- lnav 怎么安装和运行?
- 在 macOS 上用 Homebrew 安装 lnav: brew install lnav 在 FreeBSD 上安装 lnav: pkg install lnav 或从发布页面下载适用于 Linux、macOS 或 Windows 的静态链接二进制文件 将 lnav 指向你的日志文件或目录: lnav /path/to/file1 /path/to/dir
- 在哪里获取 lnav?
- 源代码和安装说明在 GitHub 上:https://github.com/tstack/lnav
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
331367RustMIT更新于 10小时前
基于 Go 的终端界面日志分析工具,提供实时图表、日志级别统计、过滤和可选的 AI 分析。
2786116GoMIT更新于 29天前
一款键盘驱动的终端 SQL 客户端,支持连接并查询多种主流数据库。
4924174PythonMIT更新于 12小时前
用 Rust 编写的 git 终端界面,支持键盘操作完成暂存、提交、分支、stash 和日志浏览。
2.3万788RustMIT更新于 16天前