18个稳定版本
新 3.0.2 | 2024年8月17日 |
---|---|
3.0.1 | 2024年4月1日 |
3.0.0 | 2024年1月21日 |
2.4.0 | 2024年1月11日 |
1.3.0 | 2023年7月31日 |
#8 in 文本编辑器
394次每月下载
4MB
3K SLoC
日志文件高亮器
功能
- 🪵 查看任何格式日志文件(或
tail
) - 🍰 无需设置或配置
- 🌈 高亮数字、日期、IP地址、UUID、URL等
- ⚙️ 所有高亮组均可自定义
- 🧬 容易与其他命令集成
- 🔍 在底层使用
less
进行回滚、搜索和过滤
目录
概述
tailspin
通过逐行读取日志文件,对每一行运行一系列正则表达式来工作。正则表达式识别您在日志文件中期望找到的模式,如日期、数字、严重性关键字等。
tailspin
对要高亮的项的格式或位置不做出任何假设。因此,它不需要配置,并且高亮效果将在不同的日志文件中保持一致。
使用方法
tailspin
的二进制名称为 tspin
。
# Read from file and view in `less`
tspin application.log
# Read from file and print to stdout
tspin application.log --print
# Read from stdin and print to stdout
echo "2021-01-01 12:00:00 [INFO] This is a log message" | tspin
# Read from another command and print to stdout
kubectl logs [pod name] --follow | tspin
安装
包管理器
# Homebrew
brew install tailspin
# Cargo
cargo install tailspin
# Archlinux
pacman -S tailspin
# Nix
nix-shell -p tailspin
# NetBSD
pkgin install tailspin
# FreeBSD
pkg install tailspin
从源代码
cargo install --path .
二进制文件将放置在 ~/.cargo/bin
,请确保将文件夹添加到您的 PATH
环境变量中。
[!重要] 从源代码构建时,请确保您正在使用最新版本的
less
。
高亮组
日期
关键词
URL
数字
IP地址
引号
Unix文件路径
HTTP方法
UUID
键值对
指针地址
Unix进程
监控文件夹
tailspin
可以监听指定文件夹中的换行符条目。监控文件夹对于监控被轮换的日志文件很有用。
当监视文件夹时,tailspin
将以跟随模式启动(使用 Ctrl + C 终止)并只打印初始启动后到达的换行条目。
自定义高亮组
概述
在 ~/.config/tailspin
中创建 config.toml
以自定义高亮组。
样式具有以下形状
style = { fg = "color", bg = "color", italic = false, bold = false, underline = false }
要编辑不同的高亮组,请在您的 config.toml
文件中包含它们。例如,要编辑 date
高亮组,将以下内容添加到您的 config.toml
[date]
style = { fg = "green" }
展开下面的部分以查看高亮组的默认配置
默认高亮组设置
[date]
number = { fg = "magenta" }
separator = { faint = true }
[date_word] # e.g. "Jan 01", "Mon Feb 28"
day = { fg = "magenta" }
month = { fg = "magenta" }
number = { fg = "magenta" }
[time]
time = { fg = "blue" }
zone = { fg = "red" }
separator = { faint = true }
[[keywords]]
words = ['null', 'true', 'false']
style = { fg = "red", italic = true }
[[keywords]]
words = ['GET']
style = { fg = "black", bg = "green" }
border = true
[url]
http = { fg = "red", faint = true }
https = { fg = "green", faint = true }
host = { fg = "blue", faint = true }
path = { fg = "blue" }
query_params_key = { fg = "magenta" }
query_params_value = { fg = "cyan" }
symbols = { fg = "red" }
[number]
style = { fg = "cyan" }
[ip]
number = { fg = "blue", italic = true }
letter = { fg = "magenta", italic = true }
separator = { fg = "red" }
[quotes]
style = { fg = "yellow" }
token = '"'
[path]
segment = { fg = "green", italic = true }
separator = { fg = "yellow" }
[uuid]
number = { fg = "blue", italic = true }
letter = { fg = "magenta", italic = true }
separator = { fg = "red" }
[pointer]
number = { fg = "blue", italic = true }
letter = { fg = "magenta", italic = true }
separator = { fg = "red" }
[key_value]
key = { faint = true }
separator = { fg = "white" }
[process]
name = { fg = "green" }
separator = { fg = "red" }
id = { fg = "yellow" }
禁用高亮组
要禁用高亮组,将该组中的 disabled
字段设置为 true
[date]
disabled = true
通过 config.toml 添加关键字
要添加自定义关键字,要么将它们包含在关键字列表中,要么添加新条目
[[keywords]]
words = ['MyCustomKeyword']
style = { fg = "green" }
[[keywords]]
words = ['null', 'true', 'false']
style = { fg = "red", italic = true }
从命令行添加关键字
有时,在无需编辑 TOML 的情况下即时添加高亮组会更方便。要从命令行添加高亮,请使用 --words-[red|green|yellow|blue|magenta|cyan]
标志,后跟要高亮的单词的逗号分隔列表。
自定义正则表达式高亮器
当您需要对高亮有更多控制时,可以使用正则表达式高亮器。此高亮器允许您指定一个正则表达式和要应用于匹配文本的样式。
它支持一个捕获组 ()
。当找到时,它将样式应用于捕获的文本。
[[regexps]]
regular_expression = 'Started (.*)\.'
style = { fg = "red" }
与 stdin
和 stdout
一起工作
默认情况下,tailspin
将使用分页器 less
打开文件。但是,如果您将某些内容传递给 tailspin
,它将直接打印高亮输出到 stdout
。这类似于运行 tspin [file] --print
。
要使 tailspin
高亮不同命令的日志,可以像这样将那些命令的输出传递给 tailspin
journalctl -f | tspin
cat /var/log/syslog | tspin
kubectl logs -f pod_name | tspin
使用分页器 less
概述
tailspin
使用 less
作为其分页器来查看高亮日志文件。您可以通过 man 命令(man less
)或按 h 键访问帮助屏幕来获取有关 less
的更多信息。
导航
在 less
中导航使用一组键绑定,这些键绑定可能对 vim
或其他 vi
-like 编辑器的用户来说很熟悉。以下是大多数有用的导航命令的简要概述
- j/k:向上/向下滚动一行
- d/u:向上/向下滚动半页
- g/G:转到文件顶部/底部
跟随模式
当您使用 -f
或 --follow
标志运行 tailspin
时,它将滚动到文件底部,并随着新行被添加到文件中而将新行打印到屏幕上。
要停止跟踪文件,使用 Ctrl + C 中断。这将停止跟踪,但保持文件打开状态,允许您查看现有内容。
要从 less
内部恢复跟踪文件,请按 Shift + F。
搜索
使用 / 后跟您的搜索查询。例如,/ERROR
查找 ERROR 的第一个出现。
搜索后,n 查找下一个实例,而 N 查找上一个实例。
过滤
less
允许通过关键字过滤行,使用 & 后跟模式。例如,&ERROR
仅显示包含 ERROR 的行。
要仅显示包含 ERROR
或 WARN
的行,请使用正则表达式:&\(ERROR\|WARN\)
。
要清除过滤器,请使用不带模式的 &。
设置
-f, --follow Follow the contents of the file
-e, --start-at-end Start at the end of the file
-p, --print Print the output to stdout
-c, --listen-command [CMD] Listen the output (stdout) of the provided command
--config-path [PATH] Use the configuration file from the provided path
--words-[COLOR] [WORDS] Highlight the provided words with the given color
--disable-builtin-keywords Disable the highlighting of all builtin groups
--disable-booleans Disable the highlighting of booleans and nulls
--disable-severity Disable the highlighting of severity levels
--disable-rest Disable the highlighting of REST verbs
依赖项
~15–29MB
~431K SLoC