UNPKG

citi-casher-session-engine

Version:

Module for multiple authentication methods for CITI Casher, deviceID and aurum

40 lines (32 loc) 1.19 kB
const transactionContext = require("./transactionContext"); const { createLogger, format, transports } = require("winston"); const { combine, colorize, timestamp, printf, errors } = format; function customFormat() { const formatMessage = (info) => `${info.timestamp} ${info.level} ${info.message}`; const formatError = (info) => `${info.timestamp} ${info.level} ${info.message}\n\n${info.stack}\n`; const formatter = (info) => info instanceof Error ? formatError(info) : formatMessage(info); return combine(colorize(), printf(formatter)); } const logger = createLogger({ format: combine( colorize({ all: true }), timestamp({ format: "YYYY-MM-DD hh:mm:ss.SSS" }), errors({ stack: true }), customFormat() ), transports: [new transports.Console()], exitOnError: false, }); const info = (...message) => { const transactionId = transactionContext.getTransactionId(); logger.info(`${transactionId} :: ${message}`); }; const error = (message) => { const transactionId = transactionContext.getTransactionId(); logger.error(`${transactionId} :: ${message}`); }; module.exports = { logger, info, error, };