-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathglobal_logger.go
108 lines (86 loc) · 2.8 KB
/
global_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
package logger
import (
"context"
"io"
)
var globalLogger = New()
// ConfigureGlobalLogger applies supplied logger options to the global logger
func ConfigureGlobalLogger(opts ...LoggerOption) {
globalLogger.applyOptions(opts...)
}
// Global logger that can be accessed without prior instantiation
func Global() *Logger {
return globalLogger
}
// WithError is a convenience wrapper for WithField("err", err)
func WithError(err error) *Entry {
return globalLogger.WithError(err)
}
// WithField creates log entry using global logger
func WithField(key string, value interface{}) *Entry {
return globalLogger.WithField(key, value)
}
// WithFields creates log entry using global logger
func WithFields(fields Fields) *Entry {
return globalLogger.WithFields(fields)
}
// WithContext creates log entry using global logger
func WithContext(ctx context.Context) *Entry {
return globalLogger.WithContext(ctx)
}
// Info uses global logger to log payload on "info" level
func Info(args ...interface{}) {
globalLogger.Info(args...)
}
// Infof uses global logger to log payload on "info" level
func Infof(format string, args ...interface{}) {
globalLogger.Infof(format, args...)
}
// Error uses global logger to log payload on "error" level
func Error(args ...interface{}) {
globalLogger.Error(args...)
}
// Errorf uses global logger to log payload on "error" level
func Errorf(format string, args ...interface{}) {
globalLogger.Errorf(format, args...)
}
// Debug uses global logger to log payload on "debug" level
func Debug(args ...interface{}) {
globalLogger.Debug(args...)
}
// Debugf uses global logger to log payload on "debug" level
func Debugf(format string, args ...interface{}) {
globalLogger.Debugf(format, args...)
}
// Warn uses global logger to log payload on "warn" level
func Warn(args ...interface{}) {
globalLogger.Warn(args...)
}
// Warnf uses global logger to log payload on "warn" level
func Warnf(format string, args ...interface{}) {
globalLogger.Warnf(format, args...)
}
// Fatal uses global logger to log payload on "fatal" level
func Fatal(args ...interface{}) {
globalLogger.Fatal(args...)
}
// Fatalf uses global logger to log payload on "fatal" level
func Fatalf(format string, args ...interface{}) {
globalLogger.Fatalf(format, args...)
}
// SetNowFunc sets `now` func user by global logger
func SetNowFunc(nowFunc NowFunc) {
ConfigureGlobalLogger(WithNowFunc(nowFunc))
}
// SetOutput changes global logger's output
func SetOutput(output io.Writer) {
ConfigureGlobalLogger(WithOutput(output))
}
// SetLevel sets minimum log level for global logger
func SetLevel(level Level) {
ConfigureGlobalLogger(WithLevel(level))
}
// SetReportCaller allows controlling if caller info should be attached to logs by global logger
func SetReportCaller(enable bool) {
ConfigureGlobalLogger(WithReportCaller(enable))
}