logHunter
为日志文件分析而生的高性能 VSCode 搜索插件
一个强大的 VSCode 扩展,专为日志文件分析设计。通过多颜色高亮、灵活的搜索选项和链式搜索功能,快速定位和分析日志中的关键信息。
特性
| 功能 |
说明 |
| 🎨 多颜色高亮 |
为每个关键词设置自定义颜色,支持 8 种预设颜色和自定义 HEX 颜色 |
| 📁 多配置文件 |
创建和管理多个 Profile,不同项目使用不同的关键词集合 |
| ⚡ 高性能搜索 |
基于 ripgrep 引擎,支持并发搜索,瞬间完成大型日志文件扫描 |
| 🔗 链式搜索 |
使用正则提取关键词后进行二次搜索,适合复杂的日志分析场景 |
| 🎯 灵活搜索选项 |
支持大小写敏感、全词匹配、正则表达式模式 |
| 👁️ 关键词切换 |
快速启用/禁用关键词,无需删除配置 |
| 📊 智能结果展示 |
自动去重、语法高亮、双击跳转,所有结果统一展示 |
| 🌓 自动对比度 |
根据背景色自动调整文字颜色(黑/白),确保可读性 |
快速开始
1. 打开 logHunter
点击 VSCode 左侧活动栏的 logHunter 图标,打开侧边栏。
2. 创建配置文件
在 Profile 面板点击 + 按钮,输入配置文件名称(例如:"Android 日志分析")。
3. 添加关键词
在 Keywords 面板中,将鼠标移动到 Keywords 或 Chains 分组上,点击右侧的 + 按钮:
- 输入关键词(例如:
FATAL)
- 选择高亮颜色(例如:红色)
- 配置搜索选项(可选)
4. 开始搜索
点击任意面板顶部的搜索按钮(🔍),logHunter 会在当前工作区中搜索所有启用的关键词。
5. 查看结果
搜索结果会显示在新的编辑器窗口中:
- 每个结果以颜色标记
- 双击任意结果行跳转到源文件位置
功能详解
侧边栏结构
logHunter 在侧边栏提供两个上下布局的面板:
| 面板 |
功能 |
| Profile |
管理当前激活配置和其他配置 |
| Keywords |
统一显示当前配置中的普通关键词和链式关键词 |
关键词管理
添加关键词
Keywords 面板 → 悬停 Keywords 分组 → 点击 + → 输入关键词 → 选择颜色
关键词选项
Aa - 区分大小写
W - 仅匹配完整单词
.* - 使用正则表达式模式
编辑关键词
右键点击关键词,选择操作:
- 👁️ Toggle - 启用/禁用
- 🎨 Change Color - 修改颜色
- ✏️ Edit - 编辑关键词内容
- 🗑️ Delete - 删除关键词
配置文件管理
在 Profile 面板中:
右键点击配置文件
├── → 切换到该配置
├── ✏️ 重命名
└── 🗑️ 删除
链式搜索 (Chained Search)
链式搜索是一种两步搜索方法,适合复杂的日志分析场景。
工作原理
第一步:提取
使用正则表达式从日志中提取内容
第二步:搜索
使用提取的内容作为关键词进行搜索
使用场景示例
场景:分析 Android 崩溃日志
原始日志:
10813 10532 E AndroidRuntime: FATAL EXCEPTION: main
10814 10533 E AndroidRuntime: Process: com.example.app, PID: 10813
配置链式搜索:
- 名称:
Android Crash PID
- 提取正则:
(\d+)\s+E\s+AndroidRuntime:.*FATAL
- 替换模式:
$1 E AndroidRuntime:
结果会提取 10813 E AndroidRuntime: 并搜索相关日志。
配置链式关键词
- 在 Keywords 面板中,将鼠标移动到 Chains 分组,点击右侧
+
- 填写配置:
- 名称:链式关键词的显示名称
- 提取正则:用于提取内容的正则表达式
- 替换模式:使用
$1, $2 等引用捕获组
- 颜色:高亮颜色
- 大小写敏感:是否区分大小写
查看提取的关键词
提取的关键词会显示在输出面板:
- 菜单:
查看 → 输出
- 选择:
logHunter
- 查看提取的关键词列表
侧边栏显示说明
Profile 面板顶部显示当前激活的配置
Others 分组中显示其他可切换的配置
Keywords 面板中包含两个默认展开的分组:
- 禁用项通过图标颜色变暗表示,不额外显示文字标记
搜索结果
结果展示
搜索结果以与 VSCode 原生搜索编辑器一致的格式展示:
5 results - 2 files
src/example.js:
42: [ERROR] Connection failed
45: [FATAL] Database connection timeout
src/utils.ts:
10: timeout error:
- 文件头显示为蓝色下划线(跟随编辑器主题色),支持 Ctrl/Cmd+点击打开文件
- 结果行中的关键词命中以对应颜色高亮
- 同一行的多个关键词命中自动合并为一行
结果操作
- 双击结果行 → 跳转到源文件对应位置,自动选中匹配的关键词
- 双击文件头 → 打开对应文件
- Ctrl/Cmd+点击文件头 → 以链接方式打开文件
- 搜索结果编辑器支持 StickyScroll,滚动时文件头自动置顶
去重机制
同一行的重复结果会自动合并,避免冗余显示。
配置
所有配置保存在 VSCode 全局状态中,自动持久化。
配置结构
{
"profiles": [
{
"id": "profile-1",
"name": "Android 日志",
"keywords": [
{
"keyword": "FATAL",
"color": "#FF0000",
"caseSensitive": false,
"wholeWord": true,
"regex": false
}
],
"chainedKeywords": [
{
"id": "chained-1",
"name": "PID 提取",
"extractRegex": "(\\d+)\\s+E\\s+AndroidRuntime",
"replacePattern": "$1",
"color": "#00FF00",
"caseSensitive": false
}
]
}
],
"keywordEnabledStates": {},
"chainedKeywordEnabledStates": {}
}
说明:
profiles - 配置文件数组,存储所有配置文件及其关键词
keywordEnabledStates - 关键词启用/禁用状态(格式:profileId-keyword)
- 只存储禁用的关键词(
false),启用的关键词不存储(默认为 true)
- 这样可以减少配置文件大小,大部分关键词都是启用状态
chainedKeywordEnabledStates - 链式关键词启用/禁用状态(格式:profileId-chainedKeywordId)
- 只存储禁用的链式关键词(
false),启用的不存储(默认为 true)
- 每个窗口独立维护当前激活的配置文件,不同窗口可以选择不同的激活配置
- 启动时会自动校验和清理配置,删除无效的 enabled states 条目