NSMP-Server / src /logger /logger.ts
Franek-Le's picture
Initial commit
d6986d3
Raw
History Blame
946 Bytes
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
);
}
}