class Logger { constructor() { this.levels = { INFO: "\x1b[36m", // Cyan WARNING: "\x1b[33m", // Yellow ERROR: "\x1b[31m", // Red CRITICAL: "\x1b[31m\x1b[1m", // Bold Red DEBUG: "\x1b[32m", // Green RESET: "\x1b[0m", // Reset color }; } _getTimestamp() { const now = new Date(); return now.toISOString().replace(/T/, " ").replace(/\..+/, ""); } _log(level, message) { const timestamp = this._getTimestamp(); const color = this.levels[level] || ""; console.log( `${color}[${timestamp}] [${level}] ${message}${this.levels.RESET}` ); } info(message) { this._log("INFO", message); } warning(message) { this._log("WARNING", message); } error(message) { this._log("ERROR", message); } critical(message) { this._log("CRITICAL", message); } debug(message) { this._log("DEBUG", message); } } // Usage // const log = new Logger(); // log.info("This is an info message"); module.exports = Logger;