From d37e18fdcf9ad3965ce7cfd2fb4c4f0665e94aa7 Mon Sep 17 00:00:00 2001 From: ctdk Date: Thu, 1 Oct 2015 13:16:23 -0700 Subject: [PATCH] Add config option to strip (most) colors from console logs --- conf/defaults.ini | 2 ++ pkg/log/console.go | 12 +++++++----- pkg/setting/setting.go | 8 ++++++-- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/conf/defaults.ini b/conf/defaults.ini index d640820fe65..69d045dc4ae 100644 --- a/conf/defaults.ini +++ b/conf/defaults.ini @@ -224,6 +224,8 @@ level = Info # For "console" mode only [log.console] level = +# Set formatting to "false" to disable color formatting of console logs +formatting = true # For "file" mode only [log.file] diff --git a/pkg/log/console.go b/pkg/log/console.go index 2a6bbf6a3bb..c290cdf45f4 100644 --- a/pkg/log/console.go +++ b/pkg/log/console.go @@ -45,15 +45,17 @@ var ( // ConsoleWriter implements LoggerInterface and writes messages to terminal. type ConsoleWriter struct { - lg *log.Logger - Level int `json:"level"` + lg *log.Logger + Level int `json:"level"` + Formatting bool `json:"formatting"` } // create ConsoleWriter returning as LoggerInterface. func NewConsole() LoggerInterface { return &ConsoleWriter{ - lg: log.New(os.Stderr, "", log.Ldate|log.Ltime), - Level: TRACE, + lg: log.New(os.Stderr, "", log.Ldate|log.Ltime), + Level: TRACE, + Formatting: true, } } @@ -65,7 +67,7 @@ func (cw *ConsoleWriter) WriteMsg(msg string, skip, level int) error { if cw.Level > level { return nil } - if runtime.GOOS == "windows" { + if runtime.GOOS == "windows" || !cw.Formatting { cw.lg.Println(msg) } else { cw.lg.Println(colors[level](msg)) diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go index 8d62e475fc1..d6a853a9cdc 100644 --- a/pkg/setting/setting.go +++ b/pkg/setting/setting.go @@ -140,7 +140,7 @@ type CommandLineArgs struct { func init() { IsWindows = runtime.GOOS == "windows" - log.NewLogger(0, "console", `{"level": 0}`) + log.NewLogger(0, "console", `{"level": 0, "formatting":true}`) } func parseAppUrlAndSubUrl(section *ini.Section) (string, string) { @@ -527,7 +527,11 @@ func initLogging(args *CommandLineArgs) { // Generate log configuration. switch mode { case "console": - LogConfigs[i] = util.DynMap{"level": level} + formatting := sec.Key("formatting").MustBool(true) + LogConfigs[i] = util.DynMap{ + "level": level, + "formatting": formatting, + } case "file": logPath := sec.Key("file_name").MustString(filepath.Join(LogsPath, "grafana.log")) os.MkdirAll(filepath.Dir(logPath), os.ModePerm)