UNPKG

@chimoney.io/iaas-k8s-deployment

Version:

Kubernetes Infrastructure as a Service deployment package for streamlined multi-cloud environments

50 lines (41 loc) 1.41 kB
import type { LogLevel, Logger } from "../../types/index.js"; // ============================================================================= // Logger Implementation // ============================================================================= export class ConsoleLogger implements Logger { constructor(private level: LogLevel = "info") {} private shouldLog(level: LogLevel): boolean { const levels: Record<LogLevel, number> = { debug: 0, info: 1, warn: 2, error: 3, silent: 4, }; return levels[level] >= levels[this.level]; } private formatMessage(level: string, message: string): string { const timestamp = new Date().toISOString(); return `[${timestamp}] [${level.toUpperCase()}] ${message}`; } debug(message: string, ...args: any[]): void { if (this.shouldLog("debug")) { console.debug(this.formatMessage("debug", message), ...args); } } info(message: string, ...args: any[]): void { if (this.shouldLog("info")) { console.info(this.formatMessage("info", message), ...args); } } warn(message: string, ...args: any[]): void { if (this.shouldLog("warn")) { console.warn(this.formatMessage("warn", message), ...args); } } error(message: string, ...args: any[]): void { if (this.shouldLog("error")) { console.error(this.formatMessage("error", message), ...args); } } }