import winston from 'winston'; import { config } from '../config'; const logFormat = winston.format.combine( winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston.format.errors({ stack: true }), winston.format.printf(({ timestamp, level, message, stack }) => { return `[${timestamp}] ${level.toUpperCase()}: ${stack || message}`; }) ); export const logger = winston.createLogger({ level: config.nodeEnv === 'production' ? 'info' : 'debug', format: logFormat, transports: [ new winston.transports.Console({ format: winston.format.combine( winston.format.colorize(), logFormat ), }), new winston.transports.File({ filename: 'logs/error.log', level: 'error', }), new winston.transports.File({ filename: 'logs/combined.log', }), ], });