import { Badge, Group, Text } from "@mantine/core"; export type LogLevel = | "debug" | "info" | "notice" | "warning" | "error" | "critical" | "alert" | "emergency"; export interface LogEntryProps { timestamp: string; level: LogLevel; message: string; logger?: string; } const levelBadgeColor: Record = { debug: "gray", info: "blue", notice: "teal", warning: "yellow", error: "red", critical: "red", alert: "red", emergency: "red", }; const levelBadgeVariant: Record = { debug: "light", info: "light", notice: "light", warning: "light", error: "light", critical: "filled", alert: "filled", emergency: "filled", }; const levelMessageColor: Record = { debug: "dimmed", info: "blue", notice: undefined, warning: "yellow", error: "red", critical: "red", alert: "red", emergency: "red", }; function isBoldLevel(level: LogLevel): boolean { return level === "alert" || level === "emergency"; } export function LogEntry({ timestamp, level, message, logger }: LogEntryProps) { return ( {timestamp} {level} {logger && ( [{logger}] )} {message} ); }