UNPKG

@inv2/common

Version:

A common module for v2

59 lines (58 loc) 2.07 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.INLogger = void 0; const winston_1 = require("winston"); const winston_transport_1 = __importDefault(require("winston-transport")); const log_created_1 = require("../events/common-publisher/log-created"); class INv2Transport extends winston_transport_1.default { constructor(opts, rabbitMQcxn) { super(opts); // // Consume any custom options here. e.g.: // - Connection information for databases // - Authentication information for APIs (e.g. loggly, papertrail, logentries, etc.). // this.logPublisher = new log_created_1.LogCreatedPublisher(rabbitMQcxn); } // eslint-disable-next-line @typescript-eslint/no-explicit-any log(info, callback) { setImmediate(() => { this.emit('logged', info); }); // Perform the writing to the remote service this.logPublisher.publish({ level: info.level, service: info.service, message: info.message, timestamp: info.timestamp }); callback(); } } ; class Logger { init(service, cxn) { this.service = service; this.cxn = cxn; } get log() { return (0, winston_1.createLogger)({ level: 'info', transports: [ new winston_1.transports.Console(), new INv2Transport({ level: 'info', endpoint: 'none', }, this.cxn) ], format: winston_1.format.combine( // format.colorize(), winston_1.format.timestamp({ format: 'MMM-DD-YYYY HH:mm:ss' }), winston_1.format.json(), winston_1.format.prettyPrint(), winston_1.format.errors({ stack: true })), defaultMeta: { service: this.service } }); } } exports.INLogger = new Logger;