UNPKG

git-spark

Version:

Git repository analytics and reporting tool for analyzing commit patterns and contributor activity

79 lines 2.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createLogger = createLogger; exports.setGlobalLogLevel = setGlobalLogLevel; class Logger { constructor(module) { this.level = 'info'; this.module = module; } setLevel(level) { this.level = level; } error(message, metadata) { this.log('error', message, metadata); } warn(message, metadata) { this.log('warn', message, metadata); } info(message, metadata) { this.log('info', message, metadata); } debug(message, metadata) { this.log('debug', message, metadata); } verbose(message, metadata) { this.log('verbose', message, metadata); } log(level, message, metadata) { if (!this.shouldLog(level)) return; const entry = { timestamp: new Date(), level, module: this.module, message, metadata, }; this.output(entry); } shouldLog(level) { const levels = ['error', 'warn', 'info', 'debug', 'verbose']; const currentIndex = levels.indexOf(this.level); const messageIndex = levels.indexOf(level); return messageIndex <= currentIndex; } output(entry) { const timestamp = entry.timestamp.toISOString(); const levelStr = entry.level.toUpperCase().padEnd(7); const moduleStr = entry.module.padEnd(12); let output = `${timestamp} ${levelStr} [${moduleStr}] ${entry.message}`; if (entry.metadata) { output += ` ${JSON.stringify(entry.metadata)}`; } switch (entry.level) { case 'error': console.error(output); break; case 'warn': console.warn(output); break; default: console.log(output); break; } } } const loggers = new Map(); function createLogger(module) { if (!loggers.has(module)) { loggers.set(module, new Logger(module)); } return loggers.get(module); } function setGlobalLogLevel(level) { for (const logger of loggers.values()) { logger.setLevel(level); } } //# sourceMappingURL=logger.js.map