forked from KeKe-Li/log
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathshortcut.go
129 lines (120 loc) · 3.19 KB
/
shortcut.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
123
124
125
126
127
128
129
package log
import (
"context"
)
// FatalContext is a shortcut to the following code:
// lg, ok := FromContext(ctx)
// if ok {
// lg.Output(1, FatalLevel, msg, fields...)
// return
// }
// Output(1, FatalLevel, msg, fields...)
func FatalContext(ctx context.Context, msg string, fields ...interface{}) {
lg, ok := FromContext(ctx)
if ok {
lg.Output(1, FatalLevel, msg, fields...)
return
}
Output(1, FatalLevel, msg, fields...)
}
// ErrorContext is a shortcut to the following code:
// lg, ok := FromContext(ctx)
// if ok {
// lg.Output(1, ErrorLevel, msg, fields...)
// return
// }
// Output(1, ErrorLevel, msg, fields...)
func ErrorContext(ctx context.Context, msg string, fields ...interface{}) {
lg, ok := FromContext(ctx)
if ok {
lg.Output(1, ErrorLevel, msg, fields...)
return
}
Output(1, ErrorLevel, msg, fields...)
}
// WarnContext is a shortcut to the following code:
// lg, ok := FromContext(ctx)
// if ok {
// lg.Output(1, WarnLevel, msg, fields...)
// return
// }
// Output(1, WarnLevel, msg, fields...)
func WarnContext(ctx context.Context, msg string, fields ...interface{}) {
lg, ok := FromContext(ctx)
if ok {
lg.Output(1, WarnLevel, msg, fields...)
return
}
Output(1, WarnLevel, msg, fields...)
}
// InfoContext is a shortcut to the following code:
// lg, ok := FromContext(ctx)
// if ok {
// lg.Output(1, InfoLevel, msg, fields...)
// return
// }
// Output(1, InfoLevel, msg, fields...)
func InfoContext(ctx context.Context, msg string, fields ...interface{}) {
lg, ok := FromContext(ctx)
if ok {
lg.Output(1, InfoLevel, msg, fields...)
return
}
Output(1, InfoLevel, msg, fields...)
}
// DebugContext is a shortcut to the following code:
// lg, ok := FromContext(ctx)
// if ok {
// lg.Output(1, DebugLevel, msg, fields...)
// return
// }
// Output(1, DebugLevel, msg, fields...)
func DebugContext(ctx context.Context, msg string, fields ...interface{}) {
lg, ok := FromContext(ctx)
if ok {
lg.Output(1, DebugLevel, msg, fields...)
return
}
Output(1, DebugLevel, msg, fields...)
}
// OutputContext is a shortcut to the following code:
// lg, ok := FromContext(ctx)
// if ok {
// lg.Output(calldepth+1, level, msg, fields...)
// return
// }
// Output(calldepth+1, level, msg, fields...)
func OutputContext(ctx context.Context, calldepth int, level Level, msg string, fields ...interface{}) {
lg, ok := FromContext(ctx)
if ok {
lg.Output(calldepth+1, level, msg, fields...)
return
}
Output(calldepth+1, level, msg, fields...)
}
// WithFieldContext is a shortcut to the following code:
// lg, ok := FromContext(ctx)
// if ok {
// return lg.WithField(key, value)
// }
// return WithField(key, value)
func WithFieldContext(ctx context.Context, key string, value interface{}) Logger {
lg, ok := FromContext(ctx)
if ok {
return lg.WithField(key, value)
}
return WithField(key, value)
}
// WithFieldsContext is a shortcut to the following code:
// lg, ok := FromContext(ctx)
// if ok {
// return lg.WithFields(fields...)
// }
// return WithFields(fields...)
func WithFieldsContext(ctx context.Context, fields ...interface{}) Logger {
lg, ok := FromContext(ctx)
if ok {
return lg.WithFields(fields...)
}
return WithFields(fields...)
}