feat: 优化升级日志组织
This commit is contained in:
59
define.go
59
define.go
@@ -12,7 +12,6 @@ import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"git.zhangdeman.cn/zhangdeman/consts"
|
||||
"git.zhangdeman.cn/zhangdeman/network/util"
|
||||
@@ -78,22 +77,22 @@ func (ld *LogData) ToFieldList() []zap.Field {
|
||||
|
||||
// InputLogConfig 输入的日志配置
|
||||
type InputLogConfig struct {
|
||||
Name string `json:"name" yaml:"name"` // 日志文件名
|
||||
Path string `json:"path" yaml:"path"` // 日志文件路径
|
||||
TimeIntervalType consts.LogSplit `json:"time_interval_type" yaml:"time_interval_type"` // 日志切割规则
|
||||
DivisionChar string `json:"division_char" yaml:"division_char"` // 文件名分隔符
|
||||
LogLevel consts.LogLevel `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"` // 日志最长保存时间, 单位 : 秒
|
||||
ZincSyncConfig *ZincConfig `json:"zinc_sync_config" yaml:"zinc_sync_config"` // 日志同步至zinc的配置
|
||||
Name string `json:"name" yaml:"name"` // 日志文件名
|
||||
Path string `json:"path" yaml:"path"` // 日志文件路径
|
||||
TimeIntervalType LogSplit `json:"time_interval_type" yaml:"time_interval_type"` // 日志切割规则
|
||||
DivisionChar string `json:"division_char" yaml:"division_char"` // 文件名分隔符
|
||||
LogLevel LogLevel `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 int64 `json:"max_age" yaml:"max_age"` // 日志最长保存时间, 单位 : 秒
|
||||
ZincSyncConfig *ZincConfig `json:"zinc_sync_config" yaml:"zinc_sync_config"` // 日志同步至zinc的配置
|
||||
}
|
||||
|
||||
// NewLogData ...
|
||||
@@ -136,10 +135,6 @@ func getStrVal(ctx context.Context, key string) string {
|
||||
}
|
||||
|
||||
// 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
|
||||
@@ -166,7 +161,7 @@ func GetLogInstanceFromInputConfig(logConf *InputLogConfig) (*zap.Logger, error)
|
||||
logConf.Name,
|
||||
WithDivisionChar(logConf.DivisionChar),
|
||||
WithTimeIntervalType(logConf.TimeIntervalType),
|
||||
WithMaxAge(time.Duration(logConf.MaxAge)*time.Second)); nil != err {
|
||||
WithMaxAge(logConf.MaxAge)); nil != err {
|
||||
return nil, err
|
||||
}
|
||||
if loggerInstance, err = NewLogger(logConf.LogLevel, splitConfig, logConfList...); nil != err {
|
||||
@@ -176,27 +171,23 @@ func GetLogInstanceFromInputConfig(logConf *InputLogConfig) (*zap.Logger, error)
|
||||
}
|
||||
|
||||
// inputLevel2ZapLevel 输入日志等级转化为zap日志等级
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 18:07 2024/6/24
|
||||
func inputLevel2ZapLevel(inputLoggerLevel consts.LogLevel) zapcore.Level {
|
||||
inputLoggerLevel = consts.LogLevel(strings.ToUpper(inputLoggerLevel.String()))
|
||||
func inputLevel2ZapLevel(inputLoggerLevel LogLevel) zapcore.Level {
|
||||
inputLoggerLevel = LogLevel(strings.ToUpper(inputLoggerLevel.String()))
|
||||
if !inputLoggerLevel.IsValid() {
|
||||
// 非法的日志等级, 自动重定向为 info 级别
|
||||
inputLoggerLevel = consts.LogLevelInfo
|
||||
inputLoggerLevel = LogLevelInfo
|
||||
}
|
||||
loggerLevel := zapcore.DebugLevel
|
||||
switch inputLoggerLevel {
|
||||
case consts.LogLevelDebug:
|
||||
case LogLevelDebug:
|
||||
loggerLevel = zapcore.DebugLevel
|
||||
case consts.LogLevelInfo:
|
||||
case LogLevelInfo:
|
||||
loggerLevel = zapcore.InfoLevel
|
||||
case consts.LogLevelWarn:
|
||||
case LogLevelWarn:
|
||||
loggerLevel = zapcore.WarnLevel
|
||||
case consts.LogLevelError:
|
||||
case LogLevelError:
|
||||
loggerLevel = zapcore.ErrorLevel
|
||||
case consts.LogLevelPanic:
|
||||
case LogLevelPanic:
|
||||
loggerLevel = zapcore.PanicLevel
|
||||
}
|
||||
return loggerLevel
|
||||
|
||||
Reference in New Issue
Block a user