-
Notifications
You must be signed in to change notification settings - Fork 49
/
log.go
40 lines (32 loc) · 1.06 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
package log
import (
"fmt"
"log"
)
// Logger is the interface that the loggers used by the library will use.
type Logger interface {
Infof(format string, args ...interface{})
Warningf(format string, args ...interface{})
Errorf(format string, args ...interface{})
}
// Dummy logger doesn't log anything
var Dummy = &dummy{}
type dummy struct{}
func (d *dummy) Infof(format string, args ...interface{}) {}
func (d *dummy) Warningf(format string, args ...interface{}) {}
func (d *dummy) Errorf(format string, args ...interface{}) {}
// Std is a wrapper for go standard library logger.
type Std struct{}
func (s *Std) logWithPrefix(prefix, format string, args ...interface{}) {
format = fmt.Sprintf("%s %s", prefix, format)
log.Printf(format, args...)
}
func (s *Std) Infof(format string, args ...interface{}) {
s.logWithPrefix("[INFO]", format, args...)
}
func (s *Std) Warningf(format string, args ...interface{}) {
s.logWithPrefix("[WARN]", format, args...)
}
func (s *Std) Errorf(format string, args ...interface{}) {
s.logWithPrefix("[ERROR]", format, args...)
}