log levels
This commit is contained in:
		| @@ -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 | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user