## 主要变更 ### 架构改进 - 明确索引(Index)与偏移(Offset)的职责分离 - Index: 记录序号(逻辑概念),用于状态判断 - Offset: 文件字节位置(物理概念),仅用于 I/O 操作 ### API 变更 - 删除所有 Position 相关方法: - `LogCursor.StartPos()/EndPos()` - `LogTailer.GetStartPos()/GetEndPos()` - `TopicProcessor.GetProcessingPosition()/GetReadPosition()` - `Seqlog.GetProcessingPosition()/GetReadPosition()` - 新增索引方法: - `LogCursor.StartIndex()/EndIndex()` - `LogTailer.GetStartIndex()/GetEndIndex()` - `TopicProcessor.GetProcessingIndex()/GetReadIndex()` - `Seqlog.GetProcessingIndex()/GetReadIndex()` - `Seqlog.GetProcessor()` - 获取 processor 实例以访问 Index ### 查询接口变更 - `RecordQuery.QueryOldest(startIndex, count, startIdx, endIdx)` - 使用索引参数 - `RecordQuery.QueryNewest(endIndex, count, startIdx, endIdx)` - 使用索引参数 - `RecordQuery.QueryAt(position, direction, count, startIdx, endIdx)` - startIdx/endIdx 用于状态判断 ### 性能优化 - 状态判断改用整数比较,不再需要计算偏移量 - 减少不必要的索引到偏移的转换 - 只在实际文件 I/O 时才获取 offset ### 测试更新 - 更新所有测试用例使用新的 Index API - 更新示例代码(topic_processor_example.go, webapp/main.go) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
76 lines
1.8 KiB
Markdown
76 lines
1.8 KiB
Markdown
# CLAUDE.md
|
||
|
||
本文件为 Claude Code 提供项目上下文信息。
|
||
|
||
**语言偏好:请使用中文进行所有交流和文档编写。**
|
||
|
||
## 项目概述
|
||
|
||
seqlog 是一个 Go 语言日志收集和处理库,模块路径为 `code.tczkiot.com/seqlog`。
|
||
|
||
**核心特性:**
|
||
- 单文件日志处理:专注于单个日志文件的读取和处理
|
||
- 游标尺机制:通过游标跟踪日志文件的读取位置,支持断点续读
|
||
- 日志收集:提供高效的日志收集和解析能力
|
||
- 使用 Go 1.25.1 版本开发
|
||
|
||
**适用场景:**
|
||
- 日志文件监控和采集
|
||
- 增量日志读取和处理
|
||
- 日志文件位置追踪
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
seqlog/
|
||
├── go.mod # Go 模块定义文件
|
||
└── CLAUDE.md # Claude Code 项目文档
|
||
```
|
||
|
||
## 开发指南
|
||
|
||
### 环境要求
|
||
- Go 1.25.1 或更高版本
|
||
- 模块路径:`code.tczkiot.com/seqlog`
|
||
|
||
### 代码规范
|
||
- 遵循 Go 官方代码风格指南
|
||
- 使用 `go fmt` 格式化代码
|
||
- 编写单元测试覆盖核心功能
|
||
- 导出的函数和类型需要添加文档注释
|
||
- **中英文混排规范**:注释等文字中,中英文之间、中文与阿拉伯数字之间必须添加空格
|
||
- ✅ 正确示例:`// 创建 logger 实例,默认日志级别为 INFO`
|
||
- ✅ 正确示例:`// 最多支持 100 个并发连接`
|
||
- ❌ 错误示例:`// 创建logger实例,默认日志级别为INFO`
|
||
- ❌ 错误示例:`// 最多支持100个并发连接`
|
||
|
||
### 构建和测试
|
||
```bash
|
||
# 运行测试
|
||
go test ./...
|
||
|
||
# 构建项目
|
||
go build ./...
|
||
|
||
# 运行代码检查
|
||
go vet ./...
|
||
```
|
||
|
||
## 常用任务
|
||
|
||
### 添加新功能
|
||
1. 在相应的包中创建新文件
|
||
2. 实现功能并编写测试
|
||
3. 更新文档说明
|
||
|
||
### 发布新版本
|
||
1. 更新版本号
|
||
2. 运行完整测试套件
|
||
3. 创建 git tag
|
||
4. 推送到远程仓库
|
||
|
||
## 技术栈
|
||
|
||
- **语言**: Go 1.25.1
|
||
- **模块管理**: Go Modules
|