Project Icon

tailspin

轻量级智能日志高亮分析工具

Tailspin是一款开源的日志高亮分析工具,无需配置即可使用。它自动识别并高亮显示日期、IP地址、UUID等日志元素,支持自定义高亮组和命令集成。基于less引擎,Tailspin提供滚动、搜索和过滤功能,简化日志分析流程。适用于查看单个日志文件或实时监控多个日志,满足开发者的各种日志分析需求。

日志文件高亮工具

特性

  • 🪵 查看(或 tail)任何格式的日志文件
  • 🍰 无需设置或配置
  • 🌈 高亮显示数字、日期、IP地址、UUID、URL等
  • ⚙️ 所有高亮组都可自定义
  • 🧬 易于与其他命令集成
  • 🔍 底层使用 less 实现回滚、搜索和过滤

目录


概述

tailspin 通过逐行读取日志文件,对每行运行一系列正则表达式来工作。这些正则表达式识别您期望在日志文件中找到的模式,如日期、数字、严重性关键词等。

tailspin 不对要高亮的项目的格式或位置做任何假设。因此,它不需要配置,高亮效果可以在不同的日志文件中保持一致。

使用方法

tailspin 的二进制文件名是 tspin

# 从文件读取并在 `less` 中查看
tspin application.log

# 从文件读取并打印到 stdout
tspin application.log --print

# 从 stdin 读取并打印到 stdout
echo "2021-01-01 12:00:00 [INFO] 这是一条日志消息" | tspin 

# 从其他命令读取并打印到 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] # 例如 "Jan 01", "Mon Feb 28"
day = { fg = "magenta" }
month = { fg = "magenta" }
number = { fg = "magenta" }
```toml
[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编辑器用户来说熟悉的键绑定。以下是最有用的导航命令简要概述:

  • j/k: 向上/向下滚动一行
  • d/u: 向上/向下滚动半页
  • g/G: 转到文件顶部/底部

跟随模式

当你使用-f--follow标志运行tailspin时,它会滚动到底部并在文件添加新行时将其打印到屏幕上。

要停止跟随文件,请使用Ctrl + C中断。这将停止跟踪,但保持文件打开,允许你查看现有内容。

要从less中恢复跟随文件,请按Shift + F

搜索

使用/后跟你的搜索查询。例如,/ERROR查找ERROR的第一次出现。

搜索后,n查找下一个实例,N查找上一个实例。

过滤

less允许通过关键词过滤行,使用&后跟模式。例如,&ERROR只显示包含ERROR的行。

要只显示包含ERRORWARN的行,请使用正则表达式:&\(ERROR\|WARN\)

要清除过滤器,使用不带模式的&

设置

-f, --follow                     跟随文件内容
-e, --start-at-end               从文件末尾开始
-p, --print                      将输出打印到stdout
-c, --listen-command [CMD]       监听提供的命令的输出(stdout)
    --config-path [PATH]         使用提供的路径的配置文件
    --words-[COLOR] [WORDS]      用给定的颜色高亮提供的单词
    --disable-builtin-keywords   禁用所有内置组的高亮
    --disable-booleans           禁用布尔值和空值的高亮
    --disable-severity           禁用严重级别的高亮
    --disable-rest               禁用REST动词的高亮
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号