From 57fa4e80b90763b5cecfc0843b65c463098f9a5e Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Wed, 17 Jan 2018 18:11:59 -0200 Subject: [PATCH 1/3] cli: using fatih/color to better support windows --- handlers/cli/cli.go | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/handlers/cli/cli.go b/handlers/cli/cli.go index fdc861c..1c13449 100644 --- a/handlers/cli/cli.go +++ b/handlers/cli/cli.go @@ -9,6 +9,7 @@ import ( "time" "github.com/apex/log" + "github.com/fatih/color" ) // Default handler outputting to stderr. @@ -17,6 +18,8 @@ var Default = New(os.Stderr) // start time. var start = time.Now() +var bold = color.New(color.Bold) + // colors. const ( none = 0 @@ -28,12 +31,12 @@ const ( ) // Colors mapping. -var Colors = [...]int{ - log.DebugLevel: gray, - log.InfoLevel: blue, - log.WarnLevel: yellow, - log.ErrorLevel: red, - log.FatalLevel: red, +var Colors = [...]color.Attribute{ + log.DebugLevel: color.Attribute(gray), + log.InfoLevel: color.Attribute(blue), + log.WarnLevel: color.Attribute(yellow), + log.ErrorLevel: color.Attribute(red), + log.FatalLevel: color.Attribute(red), } // Strings mapping. @@ -62,21 +65,20 @@ func New(w io.Writer) *Handler { // HandleLog implements log.Handler. func (h *Handler) HandleLog(e *log.Entry) error { - color := Colors[e.Level] + fg := color.New(Colors[e.Level]) level := Strings[e.Level] names := e.Fields.Names() h.mu.Lock() defer h.mu.Unlock() - fmt.Fprintf(h.Writer, "\033[%dm%*s\033[0m %-25s", color, h.Padding+1, level, e.Message) + fg.Fprintf(h.Writer, "%s %-25s", bold.Sprintf("%*s", h.Padding+1, level), e.Message) for _, name := range names { if name == "source" { continue } - - fmt.Fprintf(h.Writer, " \033[%dm%s\033[0m=%v", color, name, e.Fields.Get(name)) + fmt.Fprintf(h.Writer, " %s=%s", fg.Sprint(name), e.Fields.Get(name)) } fmt.Fprintln(h.Writer) From bb14657810e3b54d3dc7536d537f76419e8af1c3 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Wed, 17 Jan 2018 18:15:23 -0200 Subject: [PATCH 2/3] improved --- handlers/cli/cli.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/handlers/cli/cli.go b/handlers/cli/cli.go index 1c13449..fcd04ae 100644 --- a/handlers/cli/cli.go +++ b/handlers/cli/cli.go @@ -31,12 +31,12 @@ const ( ) // Colors mapping. -var Colors = [...]color.Attribute{ - log.DebugLevel: color.Attribute(gray), - log.InfoLevel: color.Attribute(blue), - log.WarnLevel: color.Attribute(yellow), - log.ErrorLevel: color.Attribute(red), - log.FatalLevel: color.Attribute(red), +var Colors = [...]*color.Color{ + log.DebugLevel: color.New(color.Attribute(gray)), + log.InfoLevel: color.New(color.Attribute(blue)), + log.WarnLevel: color.New(color.Attribute(yellow)), + log.ErrorLevel: color.New(color.Attribute(red)), + log.FatalLevel: color.New(color.Attribute(red)), } // Strings mapping. @@ -65,20 +65,20 @@ func New(w io.Writer) *Handler { // HandleLog implements log.Handler. func (h *Handler) HandleLog(e *log.Entry) error { - fg := color.New(Colors[e.Level]) + color := Colors[e.Level] level := Strings[e.Level] names := e.Fields.Names() h.mu.Lock() defer h.mu.Unlock() - fg.Fprintf(h.Writer, "%s %-25s", bold.Sprintf("%*s", h.Padding+1, level), e.Message) + color.Fprintf(h.Writer, "%s %-25s", bold.Sprintf("%*s", h.Padding+1, level), e.Message) for _, name := range names { if name == "source" { continue } - fmt.Fprintf(h.Writer, " %s=%s", fg.Sprint(name), e.Fields.Get(name)) + fmt.Fprintf(h.Writer, " %s=%s", color.Sprint(name), e.Fields.Get(name)) } fmt.Fprintln(h.Writer) From a4c544fbdce9cd40ba366e750f36f34d742f2645 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Wed, 17 Jan 2018 18:22:34 -0200 Subject: [PATCH 3/3] cleanup --- handlers/cli/cli.go | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/handlers/cli/cli.go b/handlers/cli/cli.go index fcd04ae..53fc36c 100644 --- a/handlers/cli/cli.go +++ b/handlers/cli/cli.go @@ -20,23 +20,13 @@ var start = time.Now() var bold = color.New(color.Bold) -// colors. -const ( - none = 0 - red = 31 - green = 32 - yellow = 33 - blue = 34 - gray = 37 -) - // Colors mapping. var Colors = [...]*color.Color{ - log.DebugLevel: color.New(color.Attribute(gray)), - log.InfoLevel: color.New(color.Attribute(blue)), - log.WarnLevel: color.New(color.Attribute(yellow)), - log.ErrorLevel: color.New(color.Attribute(red)), - log.FatalLevel: color.New(color.Attribute(red)), + log.DebugLevel: color.New(color.FgWhite), + log.InfoLevel: color.New(color.FgBlue), + log.WarnLevel: color.New(color.FgYellow), + log.ErrorLevel: color.New(color.FgRed), + log.FatalLevel: color.New(color.FgRed), } // Strings mapping.