-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathlog.go
62 lines (53 loc) · 1.53 KB
/
log.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
package graceful
// DebugLogger interface is used by a Sever or a Client
// to log some debug information.
type DebugLogger interface {
Debugf(string, ...interface{})
}
// InfoLogger interface is used by a Sever or a Client
// to log some info information.
type InfoLogger interface {
Infof(string, ...interface{})
}
// ErrorLogger interface is used by a Sever or a Client
// to log some error information.
type ErrorLogger interface {
Errorf(string, ...interface{})
}
// Logger interface is used by a ResponseWriter to provide log methods for
// Handlers.
type Logger interface {
DebugLogger
InfoLogger
ErrorLogger
}
type funcLogger struct {
debugf func(string, ...interface{})
infof func(string, ...interface{})
errorf func(string, ...interface{})
}
// LoggerFunc creates Logger from given functions.
func LoggerFunc(debugf, infof, errorf func(string, ...interface{})) Logger {
return funcLogger{debugf, infof, errorf}
}
func (f funcLogger) Debugf(s string, args ...interface{}) {
if f.debugf != nil {
f.debugf(s, args...)
}
}
func (f funcLogger) Infof(s string, args ...interface{}) {
if f.infof != nil {
f.infof(s, args...)
}
}
func (f funcLogger) Errorf(s string, args ...interface{}) {
if f.errorf != nil {
f.errorf(s, args...)
}
}
type serverLogger struct {
*Server
}
func (s serverLogger) Debugf(f string, args ...interface{}) { s.debugf(f, args...) }
func (s serverLogger) Infof(f string, args ...interface{}) { s.infof(f, args...) }
func (s serverLogger) Errorf(f string, args ...interface{}) { s.errorf(f, args...) }