-
Notifications
You must be signed in to change notification settings - Fork 0
/
logger.go
71 lines (62 loc) · 1.65 KB
/
logger.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
package logger
import (
"log"
"time"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
const (
logTmFmtWithMS = "2006-01-02 15:04:05.000"
)
var (
logger *zap.Logger
infoLogger *log.Logger
debugLogger *log.Logger
warningLogger *log.Logger
errorLogger *log.Logger
)
func init() {
customTimeEncoder := func(t time.Time, enc zapcore.PrimitiveArrayEncoder) {
enc.AppendString("[" + t.Format(logTmFmtWithMS) + "]")
}
cfg := zap.Config{
Level: zap.NewAtomicLevelAt(zap.DebugLevel),
Development: true,
Encoding: "json",
EncoderConfig: zapcore.EncoderConfig{
TimeKey: "time",
LevelKey: "level",
NameKey: "logger",
CallerKey: "caller",
MessageKey: "msg",
StacktraceKey: "trace",
LineEnding: zapcore.DefaultLineEnding,
EncodeLevel: zapcore.LowercaseLevelEncoder,
EncodeTime: customTimeEncoder,
EncodeDuration: zapcore.SecondsDurationEncoder,
EncodeCaller: zapcore.ShortCallerEncoder,
},
OutputPaths: []string{"stdout"}, //[]string{"/tmp/zap.log"},
ErrorOutputPaths: []string{"stdout"},
// InitialFields: map[string]interface{}{
// "app": "test",
// },
}
logger, _ = cfg.Build()
infoLogger, _ = zap.NewStdLogAt(logger, zapcore.InfoLevel)
debugLogger, _ = zap.NewStdLogAt(logger, zapcore.DebugLevel)
warningLogger, _ = zap.NewStdLogAt(logger, zapcore.WarnLevel)
errorLogger, _ = zap.NewStdLogAt(logger, zapcore.ErrorLevel)
}
func InfoLogger() *log.Logger {
return infoLogger
}
func DebugLogger() *log.Logger {
return debugLogger
}
func WarningLogger() *log.Logger {
return warningLogger
}
func ErrorLogger() *log.Logger {
return errorLogger
}