From 239ff85307cf37872e5c102f447d1cfc1380f739 Mon Sep 17 00:00:00 2001 From: Charles Iliya Krempeaux Date: Tue, 13 Oct 2015 19:16:33 -0700 Subject: [PATCH] created new methods as part of the flogger interface. Debug] --- debug.go | 35 +++++++++++++++++++++++++++++++++++ error.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ fatal.go | 20 +++++++++++++++++--- flog.go | 9 +++++++++ flogger.go | 18 ++++++++++++++++++ panic.go | 33 +++++++++++++++++++++++++++------ print.go | 13 ++++++++++--- trace.go | 35 +++++++++++++++++++++++++++++++++++ warn.go | 35 +++++++++++++++++++++++++++++++++++ 9 files changed, 234 insertions(+), 12 deletions(-) create mode 100644 debug.go create mode 100644 error.go create mode 100644 trace.go create mode 100644 warn.go diff --git a/debug.go b/debug.go new file mode 100644 index 0000000..3027206 --- /dev/null +++ b/debug.go @@ -0,0 +1,35 @@ +package flog + + +import ( + "fmt" +) + + +var ( + debugContext = map[string]interface{}{ + "~type":"debug", + } +) + + +func (flogger *internalFlogger) Debug(v ...interface{}) { + + msg := fmt.Sprint(v...) + + flogger.route(msg, debugContext) +} + +func (flogger *internalFlogger) Debugf(format string, v ...interface{}) { + + msg := fmt.Sprintf(format, v...) + + flogger.route(msg, debugContext) +} + +func (flogger *internalFlogger) Debugln(v ...interface{}) { + + msg := fmt.Sprintln(v...) + + flogger.route(msg, debugContext) +} diff --git a/error.go b/error.go new file mode 100644 index 0000000..dcdd265 --- /dev/null +++ b/error.go @@ -0,0 +1,48 @@ +package flog + + +import ( + "fmt" +) + + +var ( + errorContext = map[string]interface{}{ + "~type":"error", + } +) + + +func (flogger *internalFlogger) Error(v ...interface{}) { + + msg := fmt.Sprint(v...) + + flogger.route(msg, errorContext) +} + +func (flogger *internalFlogger) Errorf(format string, v ...interface{}) { + + msg := fmt.Sprintf(format, v...) + + flogger.route(msg, errorContext) +} + +func (flogger *internalFlogger) Errorfe(err error, format string, v ...interface{}) { + + msg := fmt.Sprintf(format, v...) + + context := map[string]interface{}{} + for k,v := range errorContext { + context[k] = v + } + context["~error"] = err + + flogger.route(msg, context) +} + +func (flogger *internalFlogger) Errorln(v ...interface{}) { + + msg := fmt.Sprintln(v...) + + flogger.route(msg, errorContext) +} diff --git a/fatal.go b/fatal.go index 4da7632..d292641 100644 --- a/fatal.go +++ b/fatal.go @@ -2,24 +2,38 @@ package flog import ( + "fmt" "os" ) +var ( + fatalContext = map[string]interface{}{ + "~type":"fatal", + } +) + + func (flogger *internalFlogger) Fatal(v ...interface{}) { - flogger.Print(v...) + msg := fmt.Sprint(v...) + + flogger.route(msg, fatalContext) os.Exit(1) } func (flogger *internalFlogger) Fatalf(format string, v ...interface{}) { - flogger.Printf(format, v...) + msg := fmt.Sprintf(format, v...) + + flogger.route(msg, fatalContext) os.Exit(1) } func (flogger *internalFlogger) Fatalln(v ...interface{}) { - flogger.Println(v...) + msg := fmt.Sprintln(v...) + + flogger.route(msg, fatalContext) os.Exit(1) } diff --git a/flog.go b/flog.go index 41f7506..1d5fd68 100644 --- a/flog.go +++ b/flog.go @@ -18,3 +18,12 @@ func New(router Router, cascade ...interface{}) Flogger { return &flogger } + + + +func (flogger *internalFlogger) route(message string, moreContext map[string]interface{}) error { + + context := newContext(flogger.context, moreContext) + + return flogger.router.Route(message, context) +} diff --git a/flogger.go b/flogger.go index 93ee4e1..717f222 100644 --- a/flogger.go +++ b/flogger.go @@ -2,17 +2,35 @@ package flog type Flogger interface { + Debug(...interface{}) + Debugf(string, ...interface{}) + Debugln(...interface{}) + + Error(...interface{}) + Errorf(string, ...interface{}) + Errorfe(error, string, ...interface{}) + Errorln(...interface{}) + Fatal(...interface{}) Fatalf(string, ...interface{}) Fatalln(...interface{}) Panic(...interface{}) Panicf(string, ...interface{}) + Panicfv(interface{}, string, ...interface{}) Panicln(...interface{}) Print(...interface{}) Printf(string, ...interface{}) Println(...interface{}) + Trace(...interface{}) + Tracef(string, ...interface{}) + Traceln(...interface{}) + + Warn(...interface{}) + Warnf(string, ...interface{}) + Warnln(...interface{}) + With(...interface{}) Flogger } diff --git a/panic.go b/panic.go index 3e7125b..61c30f4 100644 --- a/panic.go +++ b/panic.go @@ -6,20 +6,41 @@ import ( ) +var ( + panicContext = map[string]interface{}{ + "~type":"panic", + } +) + + func (flogger *internalFlogger) Panic(v ...interface{}) { - flogger.Print(v...) - panic(fmt.Sprint(v...)) + msg := fmt.Sprint(v...) + + flogger.route(msg, panicContext) + panic(msg) } func (flogger *internalFlogger) Panicf(format string, v ...interface{}) { - flogger.Printf(format, v...) - panic(fmt.Sprintf(format, v...)) + msg := fmt.Sprintf(format, v...) + + flogger.route(msg, panicContext) + panic(msg) +} + +func (flogger *internalFlogger) Panicfv(panicValue interface{}, format string, v ...interface{}) { + + msg := fmt.Sprintf(format, v...) + + flogger.route(msg, panicContext) + panic(panicValue) } func (flogger *internalFlogger) Panicln(v ...interface{}) { - flogger.Println(v...) - panic(fmt.Sprintln(v...)) + msg := fmt.Sprintln(v...) + + flogger.route(msg, panicContext) + panic(msg) } diff --git a/print.go b/print.go index afa93a9..8d32b84 100644 --- a/print.go +++ b/print.go @@ -6,23 +6,30 @@ import ( ) +var ( + printContext = map[string]interface{}{ + "~type":"print", + } +) + + func (flogger *internalFlogger) Print(v ...interface{}) { msg := fmt.Sprint(v...) - flogger.router.Route(msg, flogger.context) + flogger.route(msg, printContext) } func (flogger *internalFlogger) Printf(format string, v ...interface{}) { msg := fmt.Sprintf(format, v...) - flogger.router.Route(msg, flogger.context) + flogger.route(msg, printContext) } func (flogger *internalFlogger) Println(v ...interface{}) { msg := fmt.Sprintln(v...) - flogger.router.Route(msg, flogger.context) + flogger.route(msg, printContext) } diff --git a/trace.go b/trace.go new file mode 100644 index 0000000..7c06fec --- /dev/null +++ b/trace.go @@ -0,0 +1,35 @@ +package flog + + +import ( + "fmt" +) + + +var ( + traceContext = map[string]interface{}{ + "~type":"trace", + } +) + + +func (flogger *internalFlogger) Trace(v ...interface{}) { + + msg := fmt.Sprint(v...) + + flogger.route(msg, traceContext) +} + +func (flogger *internalFlogger) Tracef(format string, v ...interface{}) { + + msg := fmt.Sprintf(format, v...) + + flogger.route(msg, traceContext) +} + +func (flogger *internalFlogger) Traceln(v ...interface{}) { + + msg := fmt.Sprintln(v...) + + flogger.route(msg, traceContext) +} diff --git a/warn.go b/warn.go new file mode 100644 index 0000000..8ed38c0 --- /dev/null +++ b/warn.go @@ -0,0 +1,35 @@ +package flog + + +import ( + "fmt" +) + + +var ( + warnContext = map[string]interface{}{ + "~type":"warn", + } +) + + +func (flogger *internalFlogger) Warn(v ...interface{}) { + + msg := fmt.Sprint(v...) + + flogger.route(msg, warnContext) +} + +func (flogger *internalFlogger) Warnf(format string, v ...interface{}) { + + msg := fmt.Sprintf(format, v...) + + flogger.route(msg, warnContext) +} + +func (flogger *internalFlogger) Warnln(v ...interface{}) { + + msg := fmt.Sprintln(v...) + + flogger.route(msg, warnContext) +}