import fs from 'fs'; import path from 'path'; const logDir = path.join(process.cwd(), 'logs'); if (!fs.existsSync(logDir)) { fs.mkdirSync(logDir, { recursive: true }); } const LEVELS = { ERROR: 'ERROR', WARN: 'WARN', INFO: 'INFO', DEBUG: 'DEBUG' }; const getCurrentTimestamp = () => { return new Date().toISOString(); }; const writeLog = (level, message, meta = {}) => { const timestamp = getCurrentTimestamp(); const logEntry = { timestamp, level, message, meta }; console.log(`[${timestamp}] ${level}: ${message}`, meta); const logFileName = `${new Date().toISOString().slice(0, 10)}.log`; const logFilePath = path.join(logDir, logFileName); fs.appendFile(logFilePath, JSON.stringify(logEntry) + '\n', (err) => { if (err) { console.error('Failed to write log to file:', err); } }); }; const logger = { error: (message, meta) => writeLog(LEVELS.ERROR, message, meta), warn: (message, meta) => writeLog(LEVELS.WARN, message, meta), info: (message, meta) => writeLog(LEVELS.INFO, message, meta), debug: (message, meta) => writeLog(LEVELS.DEBUG, message, meta) }; export default logger;