UNPKG

cybersource-rest-auth

Version:

CyberSource SDK for authenticating to the REST API

48 lines (38 loc) 1.41 kB
const winston = require('winston'); const { format } = require('winston'); const { combine, timestamp, label, printf } = format; require('winston-daily-rotate-file'); const loggingFormat = printf(({ level, message, label, timestamp }) => { return `[${timestamp}] [${level.toUpperCase()}] [${label}] : ${message}`; }); exports.getLogger = function (merchantConfig, loggerCategory = 'UnknownCategoryLogger') { var appTransports = createTransportFromConfig(merchantConfig); var loggingLevel = merchantConfig.getLoggingLevel(); return winston.loggers.get(loggerCategory, { level: loggingLevel, format: combine( label({ label: loggerCategory }), timestamp(), loggingFormat ), transports: appTransports }); } function createTransportFromConfig(mConfig) { var transports = []; var loggingLevel = mConfig.getLoggingLevel(); var maxLogFiles = mConfig.getMaxLogFiles(); var logFileName = mConfig.getLogFileName(); var logDirectory = mConfig.getLogDirectory(); var enableLog = mConfig.getEnableLog(); transports.push(new winston.transports.DailyRotateFile({ level: loggingLevel, filename: logFileName + '-%DATE%.log', datePattern: 'YYYY-MM-DD', zippedArchive: true, dirname: logDirectory, maxFiles: maxLogFiles, silent: !enableLog })); return transports; }