import winston from 'winston'; const enumerateErrorFormat = winston.format((info) => { if (info instanceof Error) { Object.assign(info, { message: info.stack }); } return info; }); export const logger = winston.createLogger({ level: process.env.LOGGING_LEVEL === 'development' ? 'debug' : 'info', format: winston.format.combine( enumerateErrorFormat(), winston.format.colorize(), winston.format.splat(), winston.format.printf(({ level, message }) => `${level}: ${message}`) ), transports: [ new winston.transports.Console({ stderrLevels: ['error'], }), ], });