增加从输入配置获取日志实例
This commit is contained in:
parent
cf395d3dc4
commit
3f63f6c673
75
define.go
Normal file
75
define.go
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
// Package logger ...
|
||||||
|
//
|
||||||
|
// Description : logger ...
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 2022-06-12 18:39
|
||||||
|
package logger
|
||||||
|
|
||||||
|
import (
|
||||||
|
"go.uber.org/zap"
|
||||||
|
"go.uber.org/zap/zapcore"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
// InputLogConfig 输入的日志配置
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// 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"` // 文件格式
|
||||||
|
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"` // 日志最长保存时间, 单位 : 秒
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetLogInstanceFromInputConfig 从输入配置获取日志实例
|
||||||
|
//
|
||||||
|
// Author : go_developer@163.com<白茶清欢>
|
||||||
|
//
|
||||||
|
// Date : 18:43 2022/6/12
|
||||||
|
func GetLogInstanceFromInputConfig(logConf *InputLogConfig) (*zap.Logger, error) {
|
||||||
|
if nil == logConf {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
|
logConfList := []SetLoggerOptionFunc{
|
||||||
|
WithCallerSkip(logConf.CallerSkip),
|
||||||
|
WithCaller(),
|
||||||
|
WithUseJsonFormat(logConf.UseJson),
|
||||||
|
WithShortCaller(logConf.UseShortFile),
|
||||||
|
}
|
||||||
|
if logConf.Console {
|
||||||
|
logConfList = append(logConfList, WithConsoleOutput())
|
||||||
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
err error
|
||||||
|
loggerInstance *zap.Logger
|
||||||
|
)
|
||||||
|
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 loggerInstance, err = NewLogger(logConf.LogLevel, splitConfig, logConfList...); nil != err {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return loggerInstance, nil
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user