diff --git a/internal/docker/level_guesser.go b/internal/docker/level_guesser.go index 7fad92a7..32097ec8 100644 --- a/internal/docker/level_guesser.go +++ b/internal/docker/level_guesser.go @@ -67,6 +67,11 @@ func guessLogLevel(logEvent *LogEvent) string { } } + // Look for the level in the middle of the message that are uppercase and surrounded by quotes + if strings.Contains(value, "\""+strings.ToUpper(first)+"\"") { + return first + } + // Look for the level in the middle of the message that are uppercase if strings.Contains(value, " "+strings.ToUpper(first)+" ") { return first diff --git a/internal/docker/level_guesser_test.go b/internal/docker/level_guesser_test.go index 2e62eb0d..89491540 100644 --- a/internal/docker/level_guesser_test.go +++ b/internal/docker/level_guesser_test.go @@ -15,6 +15,10 @@ func TestGuessLogLevel(t *testing.T) { }{ {"2024/12/30 12:21AM INF this is a test", "info"}, {"2024-12-30T17:43:16Z DBG loggging debug from here", "debug"}, + {"2025-01-07 15:40:15,784 LL=\"ERROR\" some message", "error"}, + {"2025-01-07 15:40:15,784 LL=\"WARN\" some message", "warn"}, + {"2025-01-07 15:40:15,784 LL=\"INFO\" some message", "info"}, + {"2025-01-07 15:40:15,784 LL=\"DEBUG\" some message", "debug"}, {"ERROR: Something went wrong", "error"}, {"WARN: Something might be wrong", "warn"}, {"INFO: Something happened", "info"},