From b9d48b4a9300b948362787b90cf3fb7ae77636b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A9ter=20Szil=C3=A1gyi?= Date: Mon, 20 Feb 2017 18:05:15 +0200 Subject: log: add support for trace level, exit on critical --- log/logger.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'log/logger.go') diff --git a/log/logger.go b/log/logger.go index a9d42b8da..a7f7d9df7 100644 --- a/log/logger.go +++ b/log/logger.go @@ -2,6 +2,7 @@ package log import ( "fmt" + "os" "time" "github.com/go-stack/stack" @@ -20,11 +21,14 @@ const ( LvlWarn LvlInfo LvlDebug + LvlTrace ) // Returns the name of a Lvl func (l Lvl) String() string { switch l { + case LvlTrace: + return "trce" case LvlDebug: return "dbug" case LvlInfo: @@ -44,6 +48,8 @@ func (l Lvl) String() string { // Useful for parsing command line args and configuration files. func LvlFromString(lvlString string) (Lvl, error) { switch lvlString { + case "trace", "trce": + return LvlTrace, nil case "debug", "dbug": return LvlDebug, nil case "info": @@ -87,6 +93,7 @@ type Logger interface { SetHandler(h Handler) // Log a message at the given level with context key/value pairs + Trace(msg string, ctx ...interface{}) Debug(msg string, ctx ...interface{}) Info(msg string, ctx ...interface{}) Warn(msg string, ctx ...interface{}) @@ -128,6 +135,10 @@ func newContext(prefix []interface{}, suffix []interface{}) []interface{} { return newCtx } +func (l *logger) Trace(msg string, ctx ...interface{}) { + l.write(msg, LvlTrace, ctx) +} + func (l *logger) Debug(msg string, ctx ...interface{}) { l.write(msg, LvlDebug, ctx) } @@ -146,6 +157,7 @@ func (l *logger) Error(msg string, ctx ...interface{}) { func (l *logger) Crit(msg string, ctx ...interface{}) { l.write(msg, LvlCrit, ctx) + os.Exit(1) } func (l *logger) GetHandler() Handler { -- cgit v1.2.3