@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
text/typescript
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);
}
}
}