From 065dd0aea0f228a4cb5cab5e6a699ee8b3efa571 Mon Sep 17 00:00:00 2001 From: Andrei Micuda Date: Mon, 10 Nov 2025 17:27:18 +0100 Subject: [PATCH] feat: update log level retrieval to support CLEF-format logs ( '@l' key) (#4236) --- internal/container/level_guesser.go | 10 ++++++++-- internal/container/level_guesser_test.go | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/internal/container/level_guesser.go b/internal/container/level_guesser.go index b334432c..ecb3b001 100644 --- a/internal/container/level_guesser.go +++ b/internal/container/level_guesser.go @@ -81,7 +81,11 @@ func guessLogLevel(logEvent *LogEvent) string { return "unknown" } - if level, ok := value.Get("level"); ok { + if level, ok := value.Get("@l"); ok { + if level, ok := level.(string); ok { + return normalizeLogLevel(level) + } + } else if level, ok := value.Get("level"); ok { if level, ok := level.(string); ok { return normalizeLogLevel(level) } @@ -95,7 +99,9 @@ func guessLogLevel(logEvent *LogEvent) string { if value == nil { return "unknown" } - if level, ok := value.Get("level"); ok { + if level, ok := value.Get("@l"); ok { + return normalizeLogLevel(level) + } else if level, ok := value.Get("level"); ok { return normalizeLogLevel(level) } else if severity, ok := value.Get("severity"); ok { return normalizeLogLevel(severity) diff --git a/internal/container/level_guesser_test.go b/internal/container/level_guesser_test.go index 075cba79..283f8391 100644 --- a/internal/container/level_guesser_test.go +++ b/internal/container/level_guesser_test.go @@ -65,6 +65,24 @@ func TestGuessLogLevel(t *testing.T) { orderedmap.Pair[string, any]{Key: "severity", Value: "info"}, ), ), "info"}, + {orderedmap.New[string, string]( + orderedmap.WithInitialData( + orderedmap.Pair[string, string]{Key: "key", Value: "value"}, + orderedmap.Pair[string, string]{Key: "@l", Value: "info"}, + ), + ), "info"}, + {orderedmap.New[string, any]( + orderedmap.WithInitialData( + orderedmap.Pair[string, any]{Key: "key", Value: "value"}, + orderedmap.Pair[string, any]{Key: "@l", Value: "debug"}, + ), + ), "debug"}, + {orderedmap.New[string, string]( + orderedmap.WithInitialData( + orderedmap.Pair[string, string]{Key: "@l", Value: "error"}, + orderedmap.Pair[string, string]{Key: "@t", Value: "2024-01-01T00:00:00Z"}, + ), + ), "error"}, {nilOrderedMap, "unknown"}, {nil, "unknown"}, }