/** * 프론트엔드 로거 유틸리티 */ type LogLevel = "debug" | "info" | "warn" | "error"; class Logger { private isDevelopment = process.env.NODE_ENV === "development"; private log(level: LogLevel, message: string, data?: any) { if (!this.isDevelopment && level === "debug") { return; } const timestamp = new Date().toISOString(); const prefix = `[${timestamp}] [${level.toUpperCase()}]`; switch (level) { case "debug": console.debug(prefix, message, data || ""); break; case "info": console.info(prefix, message, data || ""); break; case "warn": console.warn(prefix, message, data || ""); break; case "error": console.error(prefix, message, data || ""); break; } } debug(message: string, data?: any) { this.log("debug", message, data); } info(message: string, data?: any) { this.log("info", message, data); } warn(message: string, data?: any) { this.log("warn", message, data); } error(message: string, data?: any) { this.log("error", message, data); } } export const logger = new Logger();