Skip to content

Commit d4fa7ac

Browse files
authored
fix: fixes log levels that have ansi color by stripping (#3400)
1 parent 1144bdf commit d4fa7ac

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

assets/components/LogViewer/ComplexLogItem.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,15 @@
1919
<template v-else-if="Array.isArray(value)">
2020
<span class="font-bold" v-html="JSON.stringify(value)"> </span>
2121
</template>
22-
<span class="font-bold" v-html="value" v-else></span>
22+
<span class="font-bold" v-html="stripAnsi(value.toString())" v-else></span>
2323
</li>
2424
<li class="text-light" v-if="Object.keys(validValues).length === 0">all values are hidden</li>
2525
</ul>
2626
</div>
2727
</div>
2828
</template>
2929
<script lang="ts" setup>
30+
import stripAnsi from "strip-ansi";
3031
import { type ComplexLogEntry } from "@/models/LogEntry";
3132
import LogDetails from "./LogDetails.vue";
3233

internal/docker/level_guesser.go

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,14 @@ func guessLogLevel(logEvent *LogEvent) string {
6363
if value == nil {
6464
return "unknown"
6565
}
66+
6667
if level, ok := value.Get("level"); ok {
6768
if level, ok := level.(string); ok {
68-
return strings.ToLower(level)
69+
return normalizeLogLevel(level)
6970
}
7071
} else if severity, ok := value.Get("severity"); ok {
7172
if severity, ok := severity.(string); ok {
72-
return strings.ToLower(severity)
73+
return normalizeLogLevel(severity)
7374
}
7475
}
7576

@@ -78,9 +79,9 @@ func guessLogLevel(logEvent *LogEvent) string {
7879
return "unknown"
7980
}
8081
if level, ok := value.Get("level"); ok {
81-
return strings.ToLower(level)
82+
return normalizeLogLevel(level)
8283
} else if severity, ok := value.Get("severity"); ok {
83-
return strings.ToLower(severity)
84+
return normalizeLogLevel(severity)
8485
}
8586

8687
case map[string]interface{}:
@@ -95,3 +96,13 @@ func guessLogLevel(logEvent *LogEvent) string {
9596

9697
return "unknown"
9798
}
99+
100+
func normalizeLogLevel(level string) string {
101+
level = stripANSI(level)
102+
level = strings.ToLower(level)
103+
if _, ok := SupportedLogLevels[level]; ok {
104+
return level
105+
}
106+
107+
return "unknown"
108+
}

0 commit comments

Comments
 (0)