Spaces:
Sleeping
Sleeping
| enum Color { | |
| Reset = "\x1b[0m", | |
| Gray = "\x1b[90m", | |
| Blue = "\x1b[34m", | |
| Yellow = "\x1b[33m", | |
| Red = "\x1b[31m", | |
| } | |
| export class Logger { | |
| constructor(private readonly context?: string) {} | |
| debug(message: string, ...meta: unknown[]): void { | |
| this.log("DEBUG", Color.Gray, message, meta); | |
| } | |
| info(message: string, ...meta: unknown[]): void { | |
| this.log("INFO ", Color.Blue, message, meta); | |
| } | |
| warn(message: string, ...meta: unknown[]): void { | |
| this.log("WARN ", Color.Yellow, message, meta); | |
| } | |
| error(message: string, ...meta: unknown[]): void { | |
| this.log("ERROR", Color.Red, message, meta); | |
| } | |
| private log(level: string, color: Color, message: string, meta: unknown[]): void { | |
| const timestamp = new Date().toISOString(); | |
| const context = this.context ? ` [${this.context}]` : ""; | |
| console.log( | |
| `${color}[${timestamp}] ${level}${context}: ${message}${Color.Reset}`, | |
| ...meta | |
| ); | |
| } | |
| } |