2021-04-10 10:35:38 +02:00
|
|
|
package sched
|
2021-04-05 11:13:21 +02:00
|
|
|
|
|
|
|
import (
|
|
|
|
"go.uber.org/zap"
|
|
|
|
)
|
|
|
|
|
2021-04-10 11:07:02 +02:00
|
|
|
// Logger Sched logging interface similar to uber-go/zap, while keeping the option to change the logging implementation
|
2021-04-10 04:59:43 +02:00
|
|
|
// It is a sub-interface of uber-go/zap SugaredLogger.
|
|
|
|
type Logger interface {
|
|
|
|
Debugw(msg string, keysAndValues ...interface{})
|
|
|
|
Errorw(msg string, keysAndValues ...interface{})
|
|
|
|
Fatalw(msg string, keysAndValues ...interface{})
|
|
|
|
Infow(msg string, keysAndValues ...interface{})
|
|
|
|
Panicw(msg string, keysAndValues ...interface{})
|
|
|
|
Warnw(msg string, keysAndValues ...interface{})
|
|
|
|
With(args ...interface{}) Logger
|
|
|
|
Named(name string) Logger
|
|
|
|
Sync() error
|
|
|
|
}
|
|
|
|
|
2021-04-05 11:13:21 +02:00
|
|
|
type logger struct {
|
|
|
|
*zap.SugaredLogger
|
|
|
|
}
|
|
|
|
|
|
|
|
func (l logger) With(args ...interface{}) Logger {
|
2021-04-05 12:12:53 +02:00
|
|
|
return logger{SugaredLogger: l.SugaredLogger.With(args...)}
|
2021-04-05 11:13:21 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
func (l logger) Named(name string) Logger {
|
2021-04-05 12:12:53 +02:00
|
|
|
return logger{SugaredLogger: l.SugaredLogger.Named(name)}
|
2021-04-05 11:13:21 +02:00
|
|
|
}
|
|
|
|
|
2021-04-10 12:19:32 +02:00
|
|
|
//DefaultLogger Return Default Sched Logger based on Zap's sugared logger
|
2021-04-05 11:13:21 +02:00
|
|
|
func DefaultLogger() Logger {
|
2021-04-10 07:23:56 +02:00
|
|
|
// TODO control verbosity
|
2021-04-10 04:59:43 +02:00
|
|
|
loggerBase, _ := zap.NewDevelopment()
|
2021-04-10 10:35:38 +02:00
|
|
|
sugarLogger := loggerBase.Sugar()
|
2021-04-10 04:59:43 +02:00
|
|
|
return &logger{
|
|
|
|
sugarLogger,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-04-10 12:19:32 +02:00
|
|
|
//NopLogger Return a No Op Logger that prints nothing.
|
2021-04-10 04:59:43 +02:00
|
|
|
func NopLogger() Logger {
|
|
|
|
loggerBase := zap.NewNop()
|
2021-04-10 07:23:56 +02:00
|
|
|
sugarLogger := loggerBase.Sugar()
|
2021-04-05 11:13:21 +02:00
|
|
|
return &logger{
|
|
|
|
sugarLogger,
|
|
|
|
}
|
|
|
|
}
|