/
logger.go
121 lines (89 loc) · 2.92 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
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
package log
import (
"context"
"go.uber.org/zap"
)
type logger struct {
debug bool
json bool
ez *EsimZap
logger *zap.Logger
sugar *zap.SugaredLogger
}
type LoggerOptions struct{}
type Option func(c *logger)
func NewLogger(options ...Option) Logger {
logger := &logger{}
for _, option := range options {
option(logger)
}
if logger.ez == nil {
logger.ez = NewEsimZap(
WithEsimZapDebug(logger.debug),
WithEsimZapJSON(logger.json),
)
}
logger.logger = logger.ez.Logger
logger.sugar = logger.ez.Logger.Sugar()
return logger
}
func WithDebug(debug bool) Option {
return func(l *logger) {
l.debug = debug
}
}
func WithJSON(json bool) Option {
return func(l *logger) {
l.json = json
}
}
func WithEsimZap(ez *EsimZap) Option {
return func(l *logger) {
l.ez = ez
}
}
func (log *logger) Error(msg string) {
log.logger.Error(msg)
}
func (log *logger) Debugf(template string, args ...interface{}) {
log.sugar.With(log.ez.getArgs(context.TODO())...).Debugf(template, args...)
}
func (log *logger) Infof(template string, args ...interface{}) {
log.sugar.With(log.ez.getArgs(context.TODO())...).Infof(template, args...)
}
func (log *logger) Warnf(template string, args ...interface{}) {
log.sugar.With(log.ez.getArgs(context.TODO())...).Warnf(template, args...)
}
func (log *logger) Errorf(template string, args ...interface{}) {
log.sugar.With(log.ez.getArgs(context.TODO())...).Errorf(template, args...)
}
func (log *logger) DPanicf(template string, args ...interface{}) {
log.sugar.With(log.ez.getArgs(context.TODO())...).DPanicf(template, args...)
}
func (log *logger) Panicf(template string, args ...interface{}) {
log.sugar.With(log.ez.getArgs(context.TODO())...).Panicf(template, args...)
}
func (log *logger) Fatalf(template string, args ...interface{}) {
log.sugar.With(log.ez.getArgs(context.TODO())...).Fatalf(template, args...)
}
func (log *logger) Debugc(ctx context.Context, template string, args ...interface{}) {
log.sugar.With(log.ez.getArgs(ctx)...).Debugf(template, args...)
}
func (log *logger) Infoc(ctx context.Context, template string, args ...interface{}) {
log.sugar.With(log.ez.getArgs(ctx)...).Infof(template, args...)
}
func (log *logger) Warnc(ctx context.Context, template string, args ...interface{}) {
log.sugar.With(log.ez.getArgs(ctx)...).Warnf(template, args...)
}
func (log *logger) Errorc(ctx context.Context, template string, args ...interface{}) {
log.sugar.With(log.ez.getArgs(ctx)...).Errorf(template, args...)
}
func (log *logger) DPanicc(ctx context.Context, template string, args ...interface{}) {
log.sugar.With(log.ez.getArgs(ctx)...).DPanicf(template, args...)
}
func (log *logger) Panicc(ctx context.Context, template string, args ...interface{}) {
log.sugar.With(log.ez.getArgs(ctx)...).Panicf(template, args...)
}
func (log *logger) Fatalc(ctx context.Context, template string, args ...interface{}) {
log.sugar.With(log.ez.getArgs(ctx)...).Fatalf(template, args...)
}