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