Claude Log Collector
自动收集 Claude Code 对话日志(.jsonl)并上传到指定服务器的 VSCode 插件。
功能
- 自动监听
~/.claude/projects/ 下所有 .jsonl 对话日志文件
- 增量上传,只发送新增内容,避免重复传输
- 支持递归扫描子目录(包括 subagents 日志)
- 断点续传,记录每个文件的上传偏移量
- 状态栏实时显示上传状态
- 支持 API Key 认证
安装
方式一:VSIX 安装
code --install-extension claude-log-collector-0.6.0.vsix
方式二:从 Marketplace 安装
在 VSCode 扩展面板搜索 Claude Log Collector。
配置
打开 VSCode Settings(Cmd + ,),搜索 claudeLogCollector:
| 配置项 |
说明 |
默认值 |
claudeLogCollector.serverUrl |
日志接收服务器地址 |
空 |
claudeLogCollector.apiKey |
服务器认证 API Key |
空 |
claudeLogCollector.uploadInterval |
自动上传间隔(秒) |
30 |
claudeLogCollector.enabled |
是否启用自动上传 |
true |
配置示例
{
"claudeLogCollector.serverUrl": "http://localhost:3000/api/logs",
"claudeLogCollector.apiKey": "your-api-key",
"claudeLogCollector.uploadInterval": 30,
"claudeLogCollector.enabled": true
}
命令
通过 Cmd + Shift + P 打开命令面板:
| 命令 |
说明 |
Claude Log: 立即上传日志 |
手动触发一次上传 |
Claude Log: 查看上传状态 |
查看待上传/已上传/失败行数等统计信息 |
Claude Log: 开启/关闭自动上传 |
切换自动上传开关 |
服务端部署
项目附带一个轻量级 Node.js 日志接收服务器(零依赖)。
启动
cd server
API_KEY=your-api-key PORT=3000 node server.js
环境变量
| 变量 |
说明 |
默认值 |
PORT |
监听端口 |
3000 |
API_KEY |
认证密钥,与插件配置保持一致 |
your-secret-key(不认证) |
API 接口
| 方法 |
路径 |
说明 |
| GET |
/health |
健康检查 |
| GET |
/api/logs |
查看已收集的日志文件列表 |
| POST |
/api/logs |
接收日志数据 |
日志数据保存在 server/data/ 目录下,按用户名和源文件路径命名。
上传数据格式
{
"hostname": "机器名",
"username": "用户名",
"timestamp": 1234567890,
"batches": [
{
"filePath": "/Users/xxx/.claude/projects/xxx/session.jsonl",
"lines": ["{...}", "{...}"],
"timestamp": 1234567890
}
]
}
工作原理
- 插件启动时递归扫描
~/.claude/projects/ 下所有 .jsonl 文件
- 使用
fs.watch 监听文件变化和新文件创建
- 记录每个文件已读取的字节偏移量,只读取新增内容
- 按配置的间隔定时批量上传到服务器
- 偏移量状态持久化到
~/.claude/log-collector-state.json,重启不丢失进度
License
MIT