/** * 간단한 로깅 유틸리티 */ type LogLevel = 'debug' | 'info' | 'warn' | 'error'; const LOG_LEVELS: Record = { debug: 0, info: 1, warn: 2, error: 3, }; // 환경변수로 로그 레벨 설정 (기본: info) const currentLevel = (process.env.LOG_LEVEL as LogLevel) || 'info'; function shouldLog(level: LogLevel): boolean { return LOG_LEVELS[level] >= LOG_LEVELS[currentLevel]; } function formatMessage(level: LogLevel, message: string, data?: unknown): string { const timestamp = new Date().toISOString(); const prefix = `[${timestamp}] [${level.toUpperCase()}]`; if (data) { return `${prefix} ${message} ${JSON.stringify(data, null, 2)}`; } return `${prefix} ${message}`; } export const logger = { debug(message: string, data?: unknown): void { if (shouldLog('debug')) { console.error(formatMessage('debug', message, data)); } }, info(message: string, data?: unknown): void { if (shouldLog('info')) { console.error(formatMessage('info', message, data)); } }, warn(message: string, data?: unknown): void { if (shouldLog('warn')) { console.error(formatMessage('warn', message, data)); } }, error(message: string, data?: unknown): void { if (shouldLog('error')) { console.error(formatMessage('error', message, data)); } }, };