/
logger.go
43 lines (33 loc) · 1.49 KB
/
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
package bot
import (
"log"
"os"
)
// Logger is the interface Robot exposes
type Logger interface {
Debug(values ...interface{})
Debugf(format string, values ...interface{})
Info(values ...interface{})
Infof(format string, values ...interface{})
Warn(values ...interface{})
Warnf(format string, values ...interface{})
Error(values ...interface{})
Errorf(format string, values ...interface{})
Fatal(values ...interface{})
Fatalf(format string, values ...interface{})
Panic(values ...interface{})
Panicf(format string, values ...interface{})
}
// defaultLogger is a very basic logger that the bot loads by default
var defaultLogger = basicLogger{log.New(os.Stdout, "", 0)}
type basicLogger struct{ *log.Logger }
func (l basicLogger) Debug(v ...interface{}) {}
func (l basicLogger) Debugf(f string, v ...interface{}) {}
func (l basicLogger) Info(v ...interface{}) { l.Logger.Println(v...) }
func (l basicLogger) Infof(f string, v ...interface{}) { l.Logger.Printf(f, v...) }
func (l basicLogger) Warn(v ...interface{}) { l.Logger.Println(v...) }
func (l basicLogger) Warnf(f string, v ...interface{}) { l.Logger.Printf(f, v...) }
func (l basicLogger) Error(v ...interface{}) { l.Logger.Println(v...) }
func (l basicLogger) Errorf(f string, v ...interface{}) { l.Logger.Printf(f, v...) }
func (l basicLogger) Panic(v ...interface{}) { l.Logger.Panicln(v...) }
func (l basicLogger) Panicf(f string, v ...interface{}) { l.Logger.Panicf(f, v...) }