/** * Default logger factory for API execution contexts. * * Provides a simple console-based logger implementation * with structured output including timestamps and execution IDs. */ import type { Logger } from "../types.js"; /** * Creates a default logger that outputs to console. * * @param executionId - Execution ID for log correlation * @returns A Logger instance using console output */ export function createDefaultLogger(executionId: string): Logger { const formatMessage = ( level: string, message: string, data?: Record, ): string => { const timestamp = new Date().toISOString(); const dataStr = data ? ` ${JSON.stringify(data)}` : ""; return `[${timestamp}] [${executionId}] [${level}] ${message}${dataStr}`; }; return { info(message: string, data?: Record): void { console.log(formatMessage("INFO", message, data)); }, warn(message: string, data?: Record): void { console.warn(formatMessage("WARN", message, data)); }, error(message: string, data?: Record): void { console.error(formatMessage("ERROR", message, data)); }, debug(message: string, data?: Record): void { console.debug(formatMessage("DEBUG", message, data)); }, }; }