-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlogger_helper.go
122 lines (105 loc) · 2.88 KB
/
logger_helper.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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package base
import (
"fmt"
"github.com/livekit/protocol/logger"
"go.uber.org/zap/zapcore"
"time"
)
const (
logTmFmtWithMS = "2006-01-02 15:04:05.000"
)
var (
_levelToColor = map[zapcore.Level]_TextColor{
zapcore.DebugLevel: Magenta,
zapcore.InfoLevel: Blue,
zapcore.WarnLevel: Yellow,
zapcore.ErrorLevel: Red,
zapcore.DPanicLevel: Red,
zapcore.PanicLevel: Red,
zapcore.FatalLevel: Red,
}
_unknownLevelColor = Red
_levelToLowercaseColorString = make(map[zapcore.Level]string, len(_levelToColor))
_levelToCapitalColorString = make(map[zapcore.Level]string, len(_levelToColor))
)
func init() {
for level, color := range _levelToColor {
_levelToLowercaseColorString[level] = color.Add(level.String())
_levelToCapitalColorString[level] = color.Add(level.CapitalString()[0:4])
}
logger.InitFromConfig(&logger.Config{
Level: "info",
EncoderConfig: &RecommendedEncoderConfig,
DisableCaller: false,
DisableStacktrace: true,
}, "default")
}
func InitDefaultLogger() {
// trigger to init()
}
func InitSimpleLogger(name, level string) {
logger.InitFromConfig(&logger.Config{
Level: level,
EncoderConfig: &RecommendedEncoderConfig,
DisableCaller: false,
DisableStacktrace: true,
}, name)
}
func InitLogger(name string, cfg *logger.Config) {
if cfg.Level == "" {
cfg.Level = "info"
}
if cfg.EncoderConfig == nil {
cfg.EncoderConfig = &RecommendedEncoderConfig
}
logger.InitFromConfig(cfg, name)
}
var (
// 自定义时间输出格式
customTimeEncoder = func(t time.Time, enc zapcore.PrimitiveArrayEncoder) {
enc.AppendString("[" + t.Format(logTmFmtWithMS) + "]")
}
// 自定义日志级别显示
customLevelEncoder = func(level zapcore.Level, enc zapcore.PrimitiveArrayEncoder) {
s, ok := _levelToCapitalColorString[level]
if !ok {
s = _unknownLevelColor.Add(level.CapitalString()[0:4])
}
enc.AppendString("[" + s + "]")
}
// 调用路径/行号输出项
customCallerEncoder = func(caller zapcore.EntryCaller, enc zapcore.PrimitiveArrayEncoder) {
enc.AppendString("[" + caller.TrimmedPath() + "]")
}
RecommendedEncoderConfig = zapcore.EncoderConfig{
CallerKey: "caller",
LevelKey: "level",
MessageKey: "msg",
TimeKey: "ts",
StacktraceKey: "stacktrace",
LineEnding: zapcore.DefaultLineEnding,
EncodeTime: customTimeEncoder,
EncodeLevel: customLevelEncoder,
EncodeCaller: customCallerEncoder,
EncodeDuration: zapcore.SecondsDurationEncoder,
EncodeName: zapcore.FullNameEncoder,
ConsoleSeparator: " ",
}
)
// _TextColor represents a text color.
type _TextColor uint8
// Foreground colors.
const (
Black _TextColor = iota + 30
Red
Green
Yellow
Blue
Magenta
Cyan
White
)
// Add adds the coloring to the given string.
func (c _TextColor) Add(s string) string {
return fmt.Sprintf("\x1b[%dm%s\x1b[0m", uint8(c), s)
}