feat(logs): 日志系统升级 — 文件轮转 + 分级存储
- 引入 lumberjack 实现日志文件自动轮转(按大小切割、保留数量、过期清理) - app.log: 全量日志(JSON 格式),便于后期接入 ELK/Loki - error.log: 仅 WARN 及以上级别,便于快速定位问题 - 控制台输出保持不变(彩色可读文本) - 配置新增 log.file 节,支持 enable/dir/max_size/max_backups/max_age/compress Made-with: Cursor
This commit is contained in:
@@ -59,17 +59,28 @@ func (r *RedisConfig) Addr() string {
|
||||
|
||||
// JWTConfig JWT 认证配置
|
||||
type JWTConfig struct {
|
||||
Secret string `mapstructure:"secret"` // 签名密钥
|
||||
AccessExpireMin int `mapstructure:"access_expire_min"` // Access Token 有效期(分钟)
|
||||
Secret string `mapstructure:"secret"` // 签名密钥
|
||||
AccessExpireMin int `mapstructure:"access_expire_min"` // Access Token 有效期(分钟)
|
||||
RefreshExpireDay int `mapstructure:"refresh_expire_day"` // Refresh Token 有效期(天)
|
||||
Issuer string `mapstructure:"issuer"` // 签发者
|
||||
}
|
||||
|
||||
// LogConfig 日志配置
|
||||
type LogConfig struct {
|
||||
Level string `mapstructure:"level"` // debug/info/warn/error
|
||||
Format string `mapstructure:"format"` // text(开发)/json(生产)
|
||||
OutputPath string `mapstructure:"output_path"` // stdout 或文件路径
|
||||
Level string `mapstructure:"level"` // debug/info/warn/error
|
||||
Format string `mapstructure:"format"` // text(开发)/json(生产)
|
||||
OutputPath string `mapstructure:"output_path"` // stdout 或文件路径
|
||||
File LogFileConfig `mapstructure:"file"` // 日志文件轮转配置
|
||||
}
|
||||
|
||||
// LogFileConfig 日志文件轮转配置(基于 lumberjack)
|
||||
type LogFileConfig struct {
|
||||
Enable bool `mapstructure:"enable"` // 是否启用文件日志
|
||||
Dir string `mapstructure:"dir"` // 日志文件目录
|
||||
MaxSize int `mapstructure:"max_size"` // 单个文件最大大小(MB),超过后自动切割
|
||||
MaxBackups int `mapstructure:"max_backups"` // 保留的旧日志文件最大数量
|
||||
MaxAge int `mapstructure:"max_age"` // 旧日志文件保留天数
|
||||
Compress bool `mapstructure:"compress"` // 是否压缩归档的旧日志文件
|
||||
}
|
||||
|
||||
// Load 加载配置文件并返回 Config 实例
|
||||
|
||||
Reference in New Issue
Block a user