UNPKG

bitcore-wallet-service

Version:
52 lines 2.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LogMiddleware = LogMiddleware; const logger_1 = require("./logger"); function LogObj(logOut) { logger_1.logger.info(`${logOut.support}${logOut.time} | ${logOut.ip} | ${logOut.userAgent || 'na'} | ${logOut.walletId || '-'} | ${logOut.phase} | ${logOut.took} | ${logOut.method} | ${logOut.status} | ${logOut.url} | ${logOut.openConnections} open`); } let openConnections = 0; function LogPhase(req, res, phase) { const ip = req.header('CF-Connecting-IP') || req.socket.remoteAddress || req.hostname; const time = req.startTime ? req.startTime : new Date(); const ua = req.headers['user-agent'] || '-'; const ver = req.headers['x-client-version'] || '-'; const support = req.isSupportStaff ? 'SUPPORT:' : ''; const logOut = { support, time: (0, logger_1.formatTimestamp)(time), walletId: req.walletId, userAgent: ua + ':' + ver, ip: ip.padStart(22, ' '), phase: phase.padStart(8, ' '), method: req.method.padStart(6, ' '), status: '...'.padStart(5, ' '), url: `${req.baseUrl}${req.url}`, took: '...'.padStart(10, ' '), openConnections: openConnections.toString().padStart(6, ' ') }; if (req.startTime && ['END', 'CLOSED'].includes(phase)) { const endTime = new Date(); const startTime = req.startTime ? req.startTime : endTime; const totalTime = endTime.getTime() - startTime.getTime(); const totalTimeMsg = `${totalTime} ms`.padStart(10, ' '); logOut.took = totalTimeMsg.padStart(10, ' '); logOut.status = res.statusCode.toString().padStart(5, ' '); } LogObj(logOut); } function LogMiddleware() { return (req, res, next) => { req.startTime = new Date(); openConnections++; res.on('finish', () => { LogPhase(req, res, 'END'); }); res.on('close', () => { openConnections--; LogPhase(req, res, 'CLOSED'); }); next(); }; } //# sourceMappingURL=middleware.js.map