-
Notifications
You must be signed in to change notification settings - Fork 1
/
config.go
70 lines (63 loc) · 1.67 KB
/
config.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package internal
import (
"errors"
gconfig2 "github.com/Ravior/gserver/util/gconfig"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"strings"
)
func NewSugaredLogger(config zapcore.EncoderConfig, defaultWriter zapcore.WriteSyncer, errorWriter zapcore.WriteSyncer, level zapcore.Level, opts ...zap.Option) *zap.SugaredLogger {
core := zapcore.NewTee(
zapcore.NewCore(
zapcore.NewJSONEncoder(config),
zapcore.AddSync(defaultWriter),
zap.NewAtomicLevelAt(level),
),
zapcore.NewCore(
zapcore.NewJSONEncoder(config),
zapcore.AddSync(errorWriter),
zap.NewAtomicLevelAt(zapcore.ErrorLevel),
),
)
zapLogger := zap.New(core, opts...)
return zapLogger.Sugar()
}
func NewConsoleLogConfig() *gconfig2.LogConfig {
config := &gconfig2.LogConfig{
Level: "debug",
StackLevel: "errors",
EnableWriteFile: false,
EnableConsole: true,
FilePath: "",
MaxAge: 0,
TimeFormat: "2006-01-02 15:04:05.000", //2006-01-02 15:04:05.000
PrintCaller: true,
}
return config
}
func GetLevel(level string) zapcore.Level {
switch strings.ToLower(level) {
case "debug":
return zapcore.DebugLevel
case "info":
return zapcore.InfoLevel
case "warn":
return zapcore.WarnLevel
case "errors":
return zapcore.ErrorLevel
case "panic":
return zapcore.PanicLevel
case "fatal":
return zapcore.FatalLevel
default:
return zapcore.FatalLevel
}
}
// GetLogConfig 读取日志配置
func GetLogConfig(name string) (*gconfig2.LogConfig, error) {
if logConfig, ok := gconfig2.Global.Log[name]; ok {
logConfig.FilePath = gconfig2.Global.BasePath + logConfig.FilePath
return logConfig, nil
}
return nil, errors.New("日志配置不存在")
}