-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathlogger.go
44 lines (38 loc) · 872 Bytes
/
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
package statuspage
var logger = &loggerWrapper{}
// Logger is an interface of a logger that could be set via function `SetLogger` as the logger of this package.
// If there will be any errors then they will be written via the logger.
type Logger interface {
Error(error)
}
type loggerWrapper struct {
logger Logger
}
// SetLogger sets the logger to be used to report about errors
func SetLogger(newLogger Logger) {
logger = &loggerWrapper{logger: newLogger}
return
}
// IfError prints the error "err" via the logger if err != nil
func (l *loggerWrapper) IfError(err error) {
if l == nil {
return
}
if err == nil {
return
}
if l.logger == nil {
return
}
l.logger.Error(err)
}
// Error prints the error "err" via the logger
func (l *loggerWrapper) Error(err error) {
if l == nil {
return
}
if l.logger == nil {
return
}
l.logger.Error(err)
}