import * as winston from 'winston'; import appConfig from '../config/app.js'; const levels = { error: 0, warn: 1, http: 2, info: 3, debug: 4, }; const colors = { error: 'red', warn: 'yellow', info: 'green', http: 'magenta', debug: 'white', }; winston.addColors(colors); const format = winston.format.combine( winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss:ms' }), winston.format.colorize({ all: true }), winston.format.printf( (info) => `${info.timestamp} [${info.level}]: ${info.message}` ) ); const transports = [ new winston.transports.Console(), new winston.transports.File({ filename: 'logs/error.log', level: 'error', }), new winston.transports.File({ filename: 'logs/server.log' }), ]; export const logger = winston.createLogger({ level: appConfig.logLevel, levels, format, transports, }); export default logger;