log levels

This commit is contained in:
Asim Aslam 2019-07-02 19:21:43 +01:00
parent 543dc0166c
commit 686aa3aa05

View File

@ -8,9 +8,22 @@ import (
golog "github.com/go-log/log/log" golog "github.com/go-log/log/log"
) )
// level is a log level
type Level int
const (
trace Level = iota
debug
info
fatal
)
var ( var (
// the local logger // the local logger
logger log.Logger = golog.New() logger log.Logger = golog.New()
// default log level is debug
level = info
) )
// Log makes use of github.com/go-log/log.Log // Log makes use of github.com/go-log/log.Log
@ -23,15 +36,61 @@ func Logf(format string, v ...interface{}) {
logger.Logf(format, v...) logger.Logf(format, v...)
} }
// WithLevel logs with the level specified
func WithLevel(l Level, v ...interface{}) {
if l < level {
return
}
Log(v...)
}
// WithLevel logs with the level specified
func WithLevelf(l Level, format string, v ...interface{}) {
if l < level {
return
}
Logf(format, v...)
}
// Trace provides trace level logging
func Trace(v ...interface{}) {
WithLevel(trace, v...)
}
// Tracef provides trace level logging
func Tracef(format string, v ...interface{}) {
WithLevelf(trace, format, v...)
}
// Debug provides debug level logging
func Debug(v ...interface{}) {
WithLevel(debug, v...)
}
// Debugf provides debug level logging
func Debugf(format string, v ...interface{}) {
WithLevelf(debug, format, v...)
}
// Info provides info level logging
func Info(v ...interface{}) {
WithLevel(info, v...)
}
// Infof provides info level logging
func Infof(format string, v ...interface{}) {
WithLevelf(info, format, v...)
}
// Fatal logs with Log and then exits with os.Exit(1) // Fatal logs with Log and then exits with os.Exit(1)
func Fatal(v ...interface{}) { func Fatal(v ...interface{}) {
Log(v...) WithLevel(fatal, v...)
os.Exit(1) os.Exit(1)
} }
// Fatalf logs with Logf and then exits with os.Exit(1) // Fatalf logs with Logf and then exits with os.Exit(1)
func Fatalf(format string, v ...interface{}) { func Fatalf(format string, v ...interface{}) {
Logf(format, v...) WithLevelf(fatal, format, v...)
os.Exit(1) os.Exit(1)
} }
@ -39,3 +98,18 @@ func Fatalf(format string, v ...interface{}) {
func SetLogger(l log.Logger) { func SetLogger(l log.Logger) {
logger = l logger = l
} }
// GetLogger returns the local logger
func GetLogger() log.Logger {
return logger
}
// SetLevel sets the log level
func SetLevel(l Level) {
level = l
}
// GetLevel returns the current level
func GetLevel() Level {
return level
}