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