import winston from 'winston'; import { env } from '../config/env'; const logFormat = winston.format.combine( winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston.format.errors({ stack: true }), winston.format.json() ); const consoleFormat = winston.format.combine( winston.format.colorize(), winston.format.timestamp({ format: 'HH:mm:ss' }), winston.format.printf(({ timestamp, level, message, ...meta }) => { const metaStr = Object.keys(meta).length ? JSON.stringify(meta) : ''; return `${timestamp} [${level}]: ${message} ${metaStr}`; }) ); export const logger = winston.createLogger({ level: env.NODE_ENV === 'development' ? 'debug' : 'info', format: logFormat, transports: [ new winston.transports.Console({ format: consoleFormat }), new winston.transports.File({ filename: 'logs/error.log', level: 'error' }), new winston.transports.File({ filename: 'logs/combined.log' }), ], });