diff --git a/pkg/logger/formatter.go b/pkg/logger/formatter.go index 97a9ff2..115c04d 100644 --- a/pkg/logger/formatter.go +++ b/pkg/logger/formatter.go @@ -15,13 +15,25 @@ type Formatter struct { func (f *Formatter) Format(entry *logrus.Entry) ([]byte, error) { prefix := "" colorEnabled := runtime.ColorEnabled() + message := entry.Message if runtime.VerboseEnabled() { date := strings.Replace(entry.Time.Local().Format(time.DateTime), " ", "T", 1) component := "" if c, ok := entry.Data[componentKey]; ok { component = " " + c.(string) } - prefix = fmt.Sprintf("\033[2m%s %s%s\033[0m\t", date, entry.Level.String(), component) + level := entry.Level.String() + if colorEnabled { + if entry.Level <= logrus.ErrorLevel { + level = "\033[31m\033[1m" + level + "\033[0m" + } else if entry.Level == logrus.WarnLevel { + level = "\033[33m\033[1m" + level + "\033[0m" + } else if entry.Level >= logrus.DebugLevel && colorEnabled { + message = "\033[2m" + message + "\033[0m" + } + } + + prefix = fmt.Sprintf("\033[2m%s %s%s\033[0m\t", date, level, component) } else if entry.Level == logrus.ErrorLevel { if colorEnabled { prefix = "\033[41m\033[1m ERROR \033[0m " @@ -31,9 +43,17 @@ func (f *Formatter) Format(entry *logrus.Entry) ([]byte, error) { } else if entry.Level == logrus.WarnLevel { if colorEnabled { prefix = "\033[43m\033[31m warning \033[0m " + message = "\033[33m" + message + "\033[0m" } else { prefix = "WARNING: " } + } else if entry.Level >= logrus.DebugLevel { + if colorEnabled { + prefix = "\033[2m" + entry.Level.String() + ":\033[0m " + message = "\033[2m" + message + "\033[0m" + } else { + prefix = strings.ToUpper(entry.Level.String()) + ": " + } } - return []byte(prefix + entry.Message + "\n"), nil + return []byte(prefix + message + "\n"), nil }