log: add support for trace level, exit on critical

This commit is contained in:
Péter Szilágyi
2017-02-20 18:05:15 +02:00
parent ec7f81f4bc
commit b9d48b4a93
5 changed files with 23 additions and 0 deletions

View File

@ -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 {