export type LogLevel = "debug" | "info" | "warn" | "error"; export function createLogger(service: string) { function log(level: LogLevel, msg: string, extra?: Record): void { const entry = { ts: new Date().toISOString(), level, service, msg, ...(extra ? { extra } : {}) }; (level === "error" || level === "warn" ? console.error : console.log)(JSON.stringify(entry)); } return { info: (msg: string, extra?: Record) => log("info", msg, extra), warn: (msg: string, extra?: Record) => log("warn", msg, extra), error: (msg: string, extra?: Record) => log("error", msg, extra), debug: (msg: string, extra?: Record) => log("debug", msg, extra), }; }