UNPKG

cleanifix

Version:

Intelligent data cleaning CLI with natural language support - Docker-powered Python engine

81 lines 3.15 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.logDebug = exports.logInfo = exports.logWarning = exports.logSuccess = exports.logError = exports.logger = void 0; const winston_1 = __importDefault(require("winston")); const chalk_1 = __importDefault(require("chalk")); const logLevel = process.env.LOG_LEVEL || 'info'; // Custom format for console output const consoleFormat = winston_1.default.format.printf(({ level, message, timestamp, ...metadata }) => { let coloredLevel = level; switch (level) { case 'error': coloredLevel = chalk_1.default.red(level.toUpperCase()); break; case 'warn': coloredLevel = chalk_1.default.yellow(level.toUpperCase()); break; case 'info': coloredLevel = chalk_1.default.blue(level.toUpperCase()); break; case 'debug': coloredLevel = chalk_1.default.gray(level.toUpperCase()); break; default: coloredLevel = level.toUpperCase(); } const metaString = Object.keys(metadata).length ? '\n' + JSON.stringify(metadata, null, 2) : ''; return `[${coloredLevel}] ${message}${metaString}`; }); // Create the logger exports.logger = winston_1.default.createLogger({ level: logLevel, format: winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.errors({ stack: true }), winston_1.default.format.splat(), winston_1.default.format.json()), transports: [ // Console transport new winston_1.default.transports.Console({ format: winston_1.default.format.combine(winston_1.default.format.colorize(), consoleFormat) }) ] }); // Add file transport in production if (process.env.NODE_ENV === 'production') { exports.logger.add(new winston_1.default.transports.File({ filename: 'error.log', level: 'error', format: winston_1.default.format.json() })); exports.logger.add(new winston_1.default.transports.File({ filename: 'combined.log', format: winston_1.default.format.json() })); } // Convenience methods const logError = (message, error) => { exports.logger.error(message, { error: error?.message, stack: error?.stack }); }; exports.logError = logError; const logSuccess = (message) => { exports.logger.info(chalk_1.default.green('✓ ' + message)); }; exports.logSuccess = logSuccess; const logWarning = (message) => { exports.logger.warn(chalk_1.default.yellow('⚠ ' + message)); }; exports.logWarning = logWarning; const logInfo = (message) => { exports.logger.info(message); }; exports.logInfo = logInfo; const logDebug = (message, data) => { exports.logger.debug(message, data); }; exports.logDebug = logDebug; // Add success method to logger for convenience exports.logger.success = (message) => { exports.logger.info(chalk_1.default.green('✓ ' + message)); }; //# sourceMappingURL=logger.js.map