BFE 访问日志(Access Log)的 Protocol Buffers 定义与二进制日志读写库(b2log),以独立 Go Module 形式发布,供 BFE 及其他下游仓库直接依赖。
- Protobuf Schema(
bfe_access_pb/bfe_access.proto):BFE 访问日志的字段定义,覆盖请求、响应、耗时、AI 观测(路由、计费、缓存等)等维度。 - 预生成 Go 代码(
bfe_access_pb/bfe_access.pb.go):生成代码随仓库一起发布,下游直接引用即可,无需本地安装protoc,降低编译依赖复杂度。 - b2log 二进制日志库(
b2log/):将 Protobuf 序列化数据封装为带魔数与头部的二进制记录,提供读写 API。 - 语义化版本管理:通过 tag 发布,下游以
go get指定版本升级字段定义。
| 目录/文件 | 说明 |
|---|---|
bfe_access_pb/ |
访问日志 Protobuf Schema(bfe_access.proto)及生成的 Go 代码(bfe_access.pb.go) |
b2log/ |
二进制日志记录读写库 |
docs/protobuf.md |
访问日志字段完整清单与字段编号规则 |
docs/README.md |
b2log 二进制格式与使用示例 |
build.sh |
由 .proto 重新生成 .pb.go 的脚本 |
CHANGELOG.md |
版本变更记录(Keep a Changelog 格式) |
go get github.com/bfenetworks/bfe-access-pb@v0.3.16import (
"google.golang.org/protobuf/proto"
"github.com/bfenetworks/bfe-access-pb/bfe_access_pb"
)
log := &bfe_access_pb.RequestLog{ /* ... */ }
buf, err := proto.Marshal(log)
// ...b2log 记录的读写(HeaderWrite / BuffParse)用法见 docs/README.md。
修改 bfe_access_pb/bfe_access.proto 后执行:
sh build.sh脚本使用 protoc(默认 /opt/protoc,可用 PROTOC 环境变量覆盖)安装 protoc-gen-go@v1.35.0 并重新生成 bfe_access.pb.go。不要手工编辑生成文件。
- 版本号遵循语义化版本,变更记录见 CHANGELOG.md。
- 下游仓库通过升级依赖版本号获取新的
.go文件:
go get github.com/bfenetworks/bfe-access-pb@v0.3.16- 已发布 tag 中的字段编号保持稳定的,详见 docs/protobuf.md 的编号规则。
- 新增访问日志字段:编辑
bfe_access.proto,按 docs/protobuf.md 的语义区间选择字段编号并更新文档,然后运行sh build.sh重新生成。 - 提交前请运行测试:
go test ./...本项目基于 Apache License 2.0 开源。