logHunter
为日志文件分析而生的高性能 VSCode 搜索插件
一个强大的 VSCode 扩展,专为日志文件分析设计。通过多颜色高亮、灵活的搜索选项和链式搜索功能,快速定位和分析日志中的关键信息。
特性
| 功能 |
说明 |
| 🎨 多颜色高亮 |
为每个关键词设置自定义颜色,支持 8 种预设颜色和自定义 HEX 颜色 |
| 📁 多配置文件 |
创建和管理多个 Profile,不同项目使用不同的关键词集合 |
| ⚡ 高性能搜索 |
基于 ripgrep 引擎,支持并发搜索,瞬间完成大型日志文件扫描 |
| 🔗 链式搜索 |
使用正则提取关键词后进行二次搜索,适合复杂的日志分析场景 |
| 🎯 灵活搜索选项 |
支持大小写敏感、全词匹配、正则表达式模式 |
| 👁️ 关键词切换 |
快速启用/禁用关键词,无需删除配置 |
| 📊 智能结果展示 |
自动去重、语法高亮、双击跳转,所有结果统一展示 |
| 🌓 自动对比度 |
根据背景色自动调整文字颜色(黑/白),确保可读性 |
快速开始
1. 打开 logHunter
点击 VSCode 左侧活动栏的 logHunter 图标,打开侧边栏。
2. 创建配置文件
在 Profiles 面板点击 + 按钮,输入配置文件名称(例如:"Android 日志分析")。
3. 添加关键词
在 Keywords 面板点击 + 按钮:
- 输入关键词(例如:
FATAL)
- 选择高亮颜色(例如:红色)
- 配置搜索选项(可选)
4. 开始搜索
点击任意面板顶部的搜索按钮(🔍),logHunter 会在当前工作区中搜索所有启用的关键词。
5. 查看结果
搜索结果会显示在新的编辑器窗口中:
- 每个结果以颜色标记
- 双击任意结果行跳转到源文件位置
功能详解
侧边栏结构
logHunter 在侧边栏提供三个独立面板:
| 面板 |
功能 |
| Profiles |
管理所有配置文件,切换当前激活的配置 |
| Keywords |
显示当前配置中的普通关键词 |
| Chained Keywords |
显示当前配置中的链式关键词 |
关键词管理
添加关键词
Keywords 面板 → 点击 + 按钮 → 输入关键词 → 选择颜色
关键词选项
- Case Sensitive (
Aa) - 区分大小写
- Whole Word (
W) - 仅匹配完整单词
- Regex (
.*) - 使用正则表达式模式
编辑关键词
右键点击关键词,选择操作:
- 👁️ Toggle - 启用/禁用
- 🎨 Change Color - 修改颜色
- ✏️ Edit - 编辑关键词内容
- 🗑️ Delete - 删除关键词
配置文件管理
在 Profiles 面板中:
右键点击配置文件
├── → 切换到该配置
├── ✏️ 重命名
└── 🗑️ 删除
链式搜索 (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: 并搜索相关日志。
配置链式关键词
- 在 Chained Keywords 面板点击
+
- 填写配置:
- 名称:链式关键词的显示名称
- 提取正则:用于提取内容的正则表达式
- 替换模式:使用
$1, $2 等引用捕获组
- 颜色:高亮颜色
- 大小写敏感:是否区分大小写
查看提取的关键词
提取的关键词会显示在输出面板:
- 菜单:
查看 → 输出
- 选择:
logHunter
- 查看提取的关键词列表
搜索结果
结果展示
搜索结果以统一格式展示:
文件路径:src/example.js
42: [ERROR] Connection failed
45: [FATAL] Database connection timeout
结果操作
- 双击结果行 → 跳转到源文件对应位置
- 文件标题 → 结果按文件分组显示
- 颜色标记 → 不同关键词用不同颜色高亮
去重机制
同一行的重复结果会自动合并,避免冗余显示。
配置
所有配置保存在 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 条目