From ad46d53ef2c6f75e59bf262d0d2c649eb69d86d1 Mon Sep 17 00:00:00 2001 From: Amir Raminfar Date: Thu, 25 May 2023 10:21:07 -0700 Subject: [PATCH] feat: removes colors to find the level (#2218) --- docker/log_iterator.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docker/log_iterator.go b/docker/log_iterator.go index c05b6d16..9f3252a7 100644 --- a/docker/log_iterator.go +++ b/docker/log_iterator.go @@ -124,14 +124,15 @@ func (g *eventGenerator) consume() { } } -var NON_ASCII_REGEX = regexp.MustCompile("^[^a-zA-z ]+[^ewidtf]?") var KEY_VALUE_REGEX = regexp.MustCompile(`level=(\w+)`) +var ANSI_COLOR_REGEX = regexp.MustCompile(`\x1b\[[0-9;]*m`) func guessLogLevel(logEvent *LogEvent) string { switch value := logEvent.Message.(type) { case string: levels := []string{"error", "warn", "info", "debug", "trace", "fatal"} - stripped := NON_ASCII_REGEX.ReplaceAllString(value, "") + stripped := ANSI_COLOR_REGEX.ReplaceAllString(value, "") // remove ansi color codes + log.Debugf("colors stripped: %s", stripped) for _, level := range levels { if match, _ := regexp.MatchString("(?i)^"+level+"[^a-z]", stripped); match { return level