import { CONFIG } from '../config'; type Level = 'info' | 'warn' | 'error' | 'debug'; const LEVELS: Record = { debug: 0, info: 1, warn: 2, error: 3 }; const MIN_LEVEL = CONFIG.NODE_ENV === 'production' ? LEVELS.info : LEVELS.debug; function log(level: Level, msg: string, meta?: Record): void { if (LEVELS[level] < MIN_LEVEL) return; const entry = JSON.stringify({ ts: new Date().toISOString(), level, msg, ...(meta ?? {}), }); if (level === 'error') { process.stderr.write(entry + '\n'); } else { process.stdout.write(entry + '\n'); } } export const logger = { info: (msg: string, meta?: Record) => log('info', msg, meta), warn: (msg: string, meta?: Record) => log('warn', msg, meta), error: (msg: string, meta?: Record) => log('error', msg, meta), debug: (msg: string, meta?: Record) => log('debug', msg, meta), };