logger.add(new winston.transports.Console({ format: winston.format.combine( winston.format.colorize(), winston.format.timestamp(), winston.format.align(), winston.format.printf((debug) => { const { timestamp, level, message, ...args } = debug; const ts = timestamp.slice(0, 19).replace('T', ' '); return `${ts} [${level}]: ${message} ${Object.keys(args).length ? JSON.stringify(args, null, 2) : ''}`; }) ) }));
winston.createLogger({ level:"debug", transports: [ new winston.transports.File({ level: 'info', filename: logDir + '/logs.log', handleExceptions: true, json: true, maxsize: 5242880, maxFiles: 5, format: winston.format.combine( winston.format.timestamp(), winston.format.align(), winston.format.printf((info) => { const { timestamp, level, message, ...args } = info; const ts = timestamp.slice(0, 19).replace('T', ' '); return `${ts} [${level}]: ${message} ${Object.keys(args).length ? JSON.stringify(args, null, 2) : ''}`; }) ) }) ], exitOnError: false })
logger.add(new winston.transports.Console({ format: winston.format.combine( winston.format.colorize(), winston.format.timestamp(), winston.format.align(), winston.format.printf((debug) => { const { timestamp, level, message, ...args } = debug; const ts = timestamp.slice(0, 19).replace('T', ' '); return `${ts} [${level}]: ${message} ${Object.keys(args).length ? JSON.stringify(args, null, 2) : ''}`; }) ) }));
winston.createLogger({ level:"debug", transports: [ new winston.transports.File({ level: 'info', filename: logDir + '/logs.log', handleExceptions: true, json: true, maxsize: 5242880, maxFiles: 5, format: winston.format.combine( winston.format.timestamp(), winston.format.align(), winston.format.printf((info) => { const { timestamp, level, message, ...args } = info; const ts = timestamp.slice(0, 19).replace('T', ' '); return `${ts} [${level}]: ${message} ${Object.keys(args).length ? JSON.stringify(args, null, 2) : ''}`; }) ) }) ], exitOnError: false })