From f8117ac7b39271a9841bfe1c0c79c2c292f3e25e Mon Sep 17 00:00:00 2001 From: Victor Gaydov Date: Mon, 11 Apr 2016 21:47:54 +0300 Subject: [PATCH] Properly disable colors in Logger middleware Fix bug when colours are enabled if non-os.File writer is used as output io.Writer. --- middleware/logger.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/middleware/logger.go b/middleware/logger.go index fa83a0b2..71d8e434 100644 --- a/middleware/logger.go +++ b/middleware/logger.go @@ -70,7 +70,7 @@ func LoggerWithConfig(config LoggerConfig) echo.MiddlewareFunc { config.template = fasttemplate.New(config.Format, "${", "}") config.color = color.New() - if w, ok := config.Output.(*os.File); ok && !isatty.IsTerminal(w.Fd()) { + if w, ok := config.Output.(*os.File); !ok || !isatty.IsTerminal(w.Fd()) { config.color.Disable() } @@ -110,14 +110,14 @@ func LoggerWithConfig(config LoggerConfig) echo.MiddlewareFunc { return w.Write([]byte(p)) case "status": n := rs.Status() - s := color.Green(n) + s := config.color.Green(n) switch { case n >= 500: - s = color.Red(n) + s = config.color.Red(n) case n >= 400: - s = color.Yellow(n) + s = config.color.Yellow(n) case n >= 300: - s = color.Cyan(n) + s = config.color.Cyan(n) } return w.Write([]byte(s)) case "response_time":