This repository has been archived by the owner on May 13, 2022. It is now read-only.
/
logger.go
65 lines (54 loc) · 1.56 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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package logger
import (
"os"
kitlog "github.com/go-kit/kit/log"
kitlevel "github.com/go-kit/kit/log/level"
)
// Logger wraps a go-kit logger
type Logger struct {
Log kitlog.Logger
}
// NewLogger creates a new logger based on the given level
func NewLogger(level string) *Logger {
log := kitlog.NewJSONLogger(kitlog.NewSyncWriter(os.Stdout))
switch level {
case "error":
log = kitlevel.NewFilter(log, kitlevel.AllowError()) // only error logs
case "warn":
log = kitlevel.NewFilter(log, kitlevel.AllowWarn()) // warn + error logs
case "info":
log = kitlevel.NewFilter(log, kitlevel.AllowInfo()) // info + warn + error logs
case "debug":
log = kitlevel.NewFilter(log, kitlevel.AllowDebug()) // all logs
default:
log = kitlevel.NewFilter(log, kitlevel.AllowNone()) // no logs
}
log = kitlog.With(log, "service", "vent")
log = kitlog.With(log, "ts", kitlog.DefaultTimestampUTC)
log = kitlog.With(log, "caller", kitlog.Caller(4))
return &Logger{
Log: log,
}
}
// NewLoggerFromKitlog creates a logger from a go-kit logger
func NewLoggerFromKitlog(log kitlog.Logger) *Logger {
return &Logger{
Log: log,
}
}
// Error prints an error log
func (l *Logger) Error(args ...interface{}) {
kitlevel.Error(l.Log).Log(args...)
}
// Warn prints a warning log
func (l *Logger) Warn(args ...interface{}) {
kitlevel.Warn(l.Log).Log(args...)
}
// Info prints an information log
func (l *Logger) Info(args ...interface{}) {
kitlevel.Info(l.Log).Log(args...)
}
// Debug prints a debug log
func (l *Logger) Debug(args ...interface{}) {
kitlevel.Debug(l.Log).Log(args...)
}