UNPKG

adpa-enterprise-framework-automation

Version:

Modular, standards-compliant Node.js/TypeScript automation framework for enterprise requirements, project, and data management. Provides CLI and API for BABOK v3, PMBOK 7th Edition, and DMBOK 2.0 (in progress). Production-ready Express.js API with TypeSpe

68 lines 2.06 kB
/** * Logger Implementation * Provides structured logging with different levels and context */ export class Logger { module; minLevel; constructor(module, minLevel = 'info') { this.module = module; this.minLevel = minLevel; } debug(message, context) { this.log('debug', message, context); } info(message, context) { this.log('info', message, context); } warn(message, context) { this.log('warn', message, context); } error(message, context) { this.log('error', message, context); } log(level, message, context) { if (!this.shouldLog(level)) { return; } const entry = { timestamp: new Date(), level, message, context, module: this.module }; this.output(entry); } shouldLog(level) { const levels = ['debug', 'info', 'warn', 'error']; const currentIndex = levels.indexOf(level); const minIndex = levels.indexOf(this.minLevel); return currentIndex >= minIndex; } output(entry) { const timestamp = entry.timestamp.toISOString(); const levelUpper = entry.level.toUpperCase().padEnd(5); const contextStr = entry.context ? ` ${JSON.stringify(entry.context)}` : ''; const logMessage = `[${timestamp}] ${levelUpper} [${entry.module}] ${entry.message}${contextStr}`; switch (entry.level) { case 'error': console.error(logMessage); break; case 'warn': console.warn(logMessage); break; case 'debug': console.debug(logMessage); break; default: console.log(logMessage); } } createChild(childModule) { return new Logger(`${this.module}:${childModule}`, this.minLevel); } } // Legacy compatibility export export const logger = new Logger('adobe'); //# sourceMappingURL=logger.js.map