/
logger.go
84 lines (66 loc) · 1.29 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
package logging
import (
"go.uber.org/zap"
"sync"
)
func init() {
_defaultLogger = New()
logs[DefaultLoggerName] = _defaultLogger
}
// name for default loggers
const (
DefaultLoggerName = "_default"
)
type Logger struct {
*zap.SugaredLogger
}
var (
_defaultLogger *Logger
)
var logs = map[string]*Logger{}
var logsMtx sync.RWMutex
func Log(name string) *Logger {
logsMtx.RLock()
defer logsMtx.RUnlock()
return logs[name]
}
func New() *Logger {
//logger, _ := zap.NewProduction()
logger, _ := zap.NewDevelopment()
sugar := logger.Sugar()
return &Logger{
SugaredLogger: sugar,
}
}
func Debug(v ...interface{}) {
_defaultLogger.Debug(v...)
}
func Info(v ...interface{}) {
_defaultLogger.Info(v...)
}
func Warn(v ...interface{}) {
_defaultLogger.Warn(v...)
}
func Error(v ...interface{}) {
_defaultLogger.Error(v...)
}
func Debugf(format string, v ...interface{}) {
_defaultLogger.Debugf(format, v...)
}
func Infof(format string, v ...interface{}) {
_defaultLogger.Infof(format, v...)
}
func Warnf(format string, v ...interface{}) {
_defaultLogger.Warnf(format, v...)
}
func Errorf(format string, v ...interface{}) {
_defaultLogger.Errorf(format, v...)
}
// Sync all log data
func Sync() {
logsMtx.RLock()
defer logsMtx.RUnlock()
for _, l := range logs {
_ = l.Sync()
}
}