# libra **Repository Path**: kun-ease/libra ## Basic Information - **Project Name**: libra - **Description**: 公共组件仓库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-07-06 - **Last Updated**: 2025-08-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Libra - Golang 工具库 `libra` 是一个 Golang 工具库,提供了一系列用于数据库连接、日志管理、配置加载、性能分析及常用工具函数的封装模块。 ## 功能特性 - **配置加载**:支持从配置文件中加载服务器、MySQL 和日志配置。 - **MySQL 管理**:支持 MySQL 的主从连接及多实例注册管理。 - **日志系统**:集成 zap 日志库,支持日志级别控制、按时间分割的日志写入器以及 trace ID 追踪。 - **HTTP 服务**:提供基于 gin 的 HTTP 服务初始化及运行封装。 - **性能分析**:支持 pprof 性能分析模块初始化。 - **工具函数**:提供如 MD5 计算、整数范围控制等常用工具函数。 ## 目录结构 ``` libra/ ├── config/ // 配置模块 │ ├── config.go // 配置初始化及管理 │ ├── model.go // 配置结构定义 │ └── toml/ // 配置文件示例 ├── db/ // 数据库模块 │ ├── mysql.go // MySQL 主从连接管理 │ └── mysql_test.go // MySQL 模块测试 ├── logging/ // 日志模块 │ └── logging.go // 日志系统实现 ├── pprof/ // 性能分析模块 │ └── pprof.go // pprof 初始化 ├── server/ // HTTP 服务模块 │ ├── http.go // gin 服务封装 │ └── http_test.go // HTTP 模块测试 ├── utils/ // 工具函数模块 │ ├── utils.go // 工具函数实现 │ └── utils_test.go // 工具函数测试 ├── go.mod // Go 模块定义 ├── go.sum // Go 模块校验 └── README.md // 项目说明 ``` ## 使用说明 ### 配置加载 配置通过 `config/config.go` 中的 `Init(configPath string)` 加载,支持 TOML 格式配置文件。示例: ```go if err := config.Init("config/toml/config.toml"); err != nil { log.Fatal("配置加载失败", zap.Error(err)) } ``` ### MySQL 初始化 通过 `db/mysql.go` 中的 `RegisterMysql` 注册 MySQL 配置,之后可通过 `GetMysqlClient` 获取数据库连接。 ```go libra.RegisterMysql(conf.Mysql) db := libra.GetMysqlClient("default") ``` ### 日志管理 日志模块支持 Debug、Info、Warn、Error 等级别,使用方式如下: ```go libra.Debug("调试信息", zap.String("key", "value")) libra.Infof("格式化信息: %s", "内容") ``` 支持 trace ID 追踪: ```go libra.SetTraceID("some-trace-id") libra.Debug("带 trace_id 的日志") ``` ### HTTP 服务启动 通过 `server/http.go` 初始化并运行 HTTP 服务: ```go engine := libra.HttpServer() if err := libra.HttpRun(engine); err != nil { log.Fatal("HTTP 服务启动失败", zap.Error(err)) } ``` ### 性能分析 启动性能分析服务: ```go libra.Init() ``` ### 工具函数 - `ComputeMD5(str string) string`:计算字符串的 MD5 值。 - `IntRange(min, max int) int`:返回介于 min 和 max 之间的整数(含边界)。 ## 单元测试 各模块均包含测试文件,使用 Go test 运行测试: ```bash go test ./config/ go test ./db/ go test ./server/ go test ./utils/ ``` ## 贡献者指南 欢迎贡献代码!请参考 [Gitee 项目页面](https://gitee.com/kun-ease/libra) 提交 PR 或 issue。 ## 协议 本项目采用 MIT License。详见 [LICENSE](https://opensource.org/licenses/MIT) 文件。