UNPKG

meld

Version:

Meld: A template language for LLM prompts

47 lines (38 loc) 1.19 kB
type LogLevel = 'debug' | 'info' | 'warn' | 'error'; interface LogContext { [key: string]: unknown; } class Logger { constructor(private namespace: string) {} debug(message: string, context: LogContext = {}): void { this.log('debug', message, context); } info(message: string, context: LogContext = {}): void { this.log('info', message, context); } warn(message: string, context: LogContext = {}): void { this.log('warn', message, context); } error(message: string, context: LogContext = {}): void { this.log('error', message, context); } private log(level: LogLevel, message: string, context: LogContext): void { // In test mode, suppress all logs except errors if (process.env.NODE_ENV === 'test' && level !== 'error') { return; } // Only output to console when not in test mode if (process.env.NODE_ENV !== 'test') { const timestamp = new Date().toISOString(); console.log(JSON.stringify({ timestamp, level, namespace: this.namespace, message, ...context })); } } } // Create namespaced loggers export const fsLogger = new Logger('filesystem');