Skip to content

Commit dc00d02

Browse files
committed
Added Helper to normalize log level
1 parent 1dbe160 commit dc00d02

File tree

2 files changed

+49
-10
lines changed

2 files changed

+49
-10
lines changed
Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,35 @@
11
<script lang="ts">
2-
import type { LogLevel } from '$features/events/models/event-data';
3-
42
import { Badge } from '$comp/ui/badge';
3+
import { getLogLevel, type LogLevel } from '$features/events/models/event-data';
54
65
interface Props {
76
level?: LogLevel;
87
}
98
109
let { level }: Props = $props();
1110
12-
// TODO: Add more variants;
13-
let variant: 'default' | 'destructive' | 'outline' | 'secondary' = $state('default');
14-
if (level === 'trace' || level === 'debug') variant = 'secondary';
15-
else if (level === 'info') variant = 'default';
16-
else if (level === 'warn') variant = 'destructive';
17-
else if (level === 'error') variant = 'destructive';
11+
function getLogLevelVariant(level: LogLevel | null): 'default' | 'destructive' | 'outline' | 'secondary' {
12+
if (level === 'trace' || level === 'debug') {
13+
return 'secondary';
14+
}
15+
16+
if (level === 'info') {
17+
return 'default';
18+
}
19+
20+
if (level === 'warn' || level === 'error') {
21+
return 'destructive';
22+
}
23+
24+
return 'default';
25+
}
26+
27+
const normalizedLogLevel = $derived(getLogLevel(level));
28+
const variant = $derived(getLogLevelVariant(normalizedLogLevel));
1829
</script>
1930

20-
{#if level}
31+
{#if normalizedLogLevel}
2132
<Badge {variant}>
22-
{level}
33+
{normalizedLogLevel}
2334
</Badge>
2435
{/if}

src/Exceptionless.Web/ClientApp/src/lib/features/events/models/event-data.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,3 +127,31 @@ export interface UserInfo {
127127
identity?: string;
128128
name?: string;
129129
}
130+
131+
// TODO: Move to a helper.
132+
export function getLogLevel(level?: LogLevel): LogLevel | null {
133+
switch (level?.toLowerCase().trim()) {
134+
case '0':
135+
case 'false':
136+
case 'no':
137+
case 'off':
138+
return 'off';
139+
case '1':
140+
case 'trace':
141+
case 'true':
142+
case 'yes':
143+
return 'trace';
144+
case 'debug':
145+
return 'debug';
146+
case 'error':
147+
return 'error';
148+
case 'fatal':
149+
return 'fatal';
150+
case 'info':
151+
return 'info';
152+
case 'warn':
153+
return 'warn';
154+
default:
155+
return null;
156+
}
157+
}

0 commit comments

Comments
 (0)