const fs = require('fs'); const tsFormat = () => (new Date()).toLocaleTimeString(); module.exports = (winston, logLevel, logDir) => { if (!fs.existsSync(logDir)) { fs.mkdirSync(logDir); } winston.configure({ transports: [ new (winston.transports.Console)({ level : logLevel, timestamp : false, colorize : true, prettyPrint: true, }), new (winston.transports.File)({ filename : `${logDir}speechLogs.log`, level : logLevel, json : false, timestamp : tsFormat, colorize : true, prettyPrint: true, }), ] }); winston.handleExceptions(new winston.transports.File({ filename : `${logDir}uncaughtExceptions.log`, humanReadableUnhandledException: true, })); winston.error('Level 0'); winston.warn('Level 1'); winston.info('Level 2'); winston.verbose('Level 3'); winston.debug('Level 4'); winston.silly('Level 5'); };