feat: 引入 Viper 实现多层配置管理
引入 Viper 配置管理框架,支持 CLI 参数、环境变量、配置文件和默认值四种配置方式。 主要变更: - 引入 Viper、pflag、validator、mapstructure 依赖 - 实现配置优先级:CLI > ENV > File > Default - 所有 13 个配置项支持 CLI 参数和环境变量 - 规范化命名:server.port → NEX_SERVER_PORT → --server-port - 使用结构体验证器进行配置验证 - 添加配置摘要输出功能 新增能力: - cli-config: 命令行参数配置支持 - env-config: 环境变量配置支持(符合 12-Factor App) - config-priority: 配置优先级管理 修改能力: - config-management: 扩展为多层配置源支持 使用示例: ./server --server-port 9000 --log-level debug export NEX_SERVER_PORT=9000 && ./server ./server --config /path/to/custom.yaml
This commit is contained in:
@@ -32,16 +32,16 @@ import (
|
||||
)
|
||||
|
||||
func main() {
|
||||
// 1. 加载配置
|
||||
// 1. 加载配置(已包含 CLI 参数解析、环境变量绑定、配置文件读取和验证)
|
||||
cfg, err := config.LoadConfig()
|
||||
if err != nil {
|
||||
log.Fatalf("加载配置失败: %v", err)
|
||||
}
|
||||
if err := cfg.Validate(); err != nil {
|
||||
log.Fatalf("配置验证失败: %v", err)
|
||||
}
|
||||
|
||||
// 2. 初始化日志
|
||||
// 2. 打印配置摘要
|
||||
cfg.PrintSummary()
|
||||
|
||||
// 3. 初始化日志
|
||||
zapLogger, err := pkgLogger.New(pkgLogger.Config{
|
||||
Level: cfg.Log.Level,
|
||||
Path: cfg.Log.Path,
|
||||
|
||||
Reference in New Issue
Block a user