修复日志切割规则构建错误问题

This commit is contained in:
zhangdeman001 2022-06-23 10:23:15 +08:00
parent 3f63f6c673
commit e536831e80

View File

@ -8,9 +8,10 @@
package logger package logger
import ( import (
"time"
"go.uber.org/zap" "go.uber.org/zap"
"go.uber.org/zap/zapcore" "go.uber.org/zap/zapcore"
"time"
) )
// InputLogConfig 输入的日志配置 // InputLogConfig 输入的日志配置
@ -19,22 +20,21 @@ import (
// //
// Date : 18:40 2022/6/12 // Date : 18:40 2022/6/12
type InputLogConfig struct { type InputLogConfig struct {
Name string `json:"name" yaml:"name"` // 日志文件名 Name string `json:"name" yaml:"name"` // 日志文件名
Path string `json:"path" yaml:"path"` // 日志文件路径 Path string `json:"path" yaml:"path"` // 日志文件路径
Format string `json:"format" yaml:"format"` // 文件格式
TimeIntervalType TimeIntervalType `json:"time_interval_type" yaml:"time_interval_type"` // 日志切割规则 TimeIntervalType TimeIntervalType `json:"time_interval_type" yaml:"time_interval_type"` // 日志切割规则
DivisionChar string `json:"division_char" yaml:"division_char"` // 文件名分隔符 DivisionChar string `json:"division_char" yaml:"division_char"` // 文件名分隔符
LogLevel zapcore.Level `json:"log_level" yaml:"log_level"` // 日志等级 LogLevel zapcore.Level `json:"log_level" yaml:"log_level"` // 日志等级
Console bool `json:"console" yaml:"console"` // 是否进行控制台日志输出 Console bool `json:"console" yaml:"console"` // 是否进行控制台日志输出
UseJson bool `json:"use_json" yaml:"use_json"` // 日志是否使用JSON格式 UseJson bool `json:"use_json" yaml:"use_json"` // 日志是否使用JSON格式
FileLine bool `json:"file_line" yaml:"file_line"` // 日志是否打印行号 FileLine bool `json:"file_line" yaml:"file_line"` // 日志是否打印行号
MessageKey string `json:"message_key" yaml:"message_key"` // message 字段 MessageKey string `json:"message_key" yaml:"message_key"` // message 字段
LevelKey string `json:"level_key" yaml:"level_key"` // level 字段 LevelKey string `json:"level_key" yaml:"level_key"` // level 字段
TimeKey string `json:"time_key" yaml:"time_key"` // 时间字段 TimeKey string `json:"time_key" yaml:"time_key"` // 时间字段
CallerKey string `json:"caller_key" yaml:"caller_key"` // 记录日志的文件的代码行数 CallerKey string `json:"caller_key" yaml:"caller_key"` // 记录日志的文件的代码行数
UseShortFile bool `json:"use_short_file" yaml:"use_short_file"` // 是否使用短文件格式 UseShortFile bool `json:"use_short_file" yaml:"use_short_file"` // 是否使用短文件格式
CallerSkip int `json:"caller_skip" yaml:"caller_skip"` // 日志记录的文件跳过多少层 CallerSkip int `json:"caller_skip" yaml:"caller_skip"` // 日志记录的文件跳过多少层
MaxAge int `json:"max_age" yaml:"max_age"` // 日志最长保存时间, 单位 : 秒 MaxAge int `json:"max_age" yaml:"max_age"` // 日志最长保存时间, 单位 : 秒
} }
// GetLogInstanceFromInputConfig 从输入配置获取日志实例 // GetLogInstanceFromInputConfig 从输入配置获取日志实例
@ -59,14 +59,15 @@ func GetLogInstanceFromInputConfig(logConf *InputLogConfig) (*zap.Logger, error)
var ( var (
err error err error
loggerInstance *zap.Logger loggerInstance *zap.Logger
splitConfig *RotateLogConfig
) )
splitConfig := &RotateLogConfig{ if splitConfig, err = NewRotateLogConfig(
TimeIntervalType: logConf.TimeIntervalType, logConf.Path,
LogPath: logConf.Path, logConf.Name,
LogFileName: logConf.Name, WithDivisionChar(logConf.DivisionChar),
DivisionChar: logConf.DivisionChar, WithTimeIntervalType(logConf.TimeIntervalType),
FullLogFormat: logConf.Format, WithMaxAge(time.Duration(logConf.MaxAge)*time.Second)); nil != err {
MaxAge: time.Duration(logConf.MaxAge) * time.Second, return nil, err
} }
if loggerInstance, err = NewLogger(logConf.LogLevel, splitConfig, logConfList...); nil != err { if loggerInstance, err = NewLogger(logConf.LogLevel, splitConfig, logConfList...); nil != err {
return nil, err return nil, err