UNPKG

@lskjs/server

Version:

LSK server.

110 lines (85 loc) 12.2 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _get = _interopRequireDefault(require("lodash/get")); var _omit = _interopRequireDefault(require("lodash/omit")); var _leftPad = _interopRequireDefault(require("@lskjs/utils/leftPad")); function levelFn(data, status) { if (data.method === 'WS') { if (status === 'start') { return 'info'; } if (status === 'finish') { return 'debug'; } } if (status === 'start') { return 'debug'; } if (data.err || data.status >= 500 || data.duration > 10000) { // server internal error or error return 'error'; } if (data.status >= 400 || data.duration > 3000) { // client error return 'warn'; } return 'info'; } var urlPad = -20; function logStart(data) { return "".concat((0, _leftPad["default"])(data.method, 4), " ").concat((0, _leftPad["default"])(data.url, urlPad), " #").concat(data.reqId); // + '\x1b[33mYAUEBAN\x1b[0m AZAZA' } function logFinish(data) { var time = (data.duration || 0).toFixed(3); var method = (0, _leftPad["default"])(data.method, 4); var length = data.length || 0; if (data.method === 'WS') { return "".concat(method, " ").concat((0, _leftPad["default"])(data.url, urlPad), " #").concat(data.reqId, " ").concat((0, _leftPad["default"])(time, 7), "ms "); } return "".concat(method, " ").concat((0, _leftPad["default"])(data.url, urlPad), " #").concat(data.reqId, " ").concat((0, _leftPad["default"])(data.status, 3), " ").concat((0, _leftPad["default"])(time, 7), "ms ").concat(length, "b "); } var _default = function _default(ctx) { if (!(0, _get["default"])(ctx, 'serverConfig.middlewares.accessLogger')) return null; return function (req, res, next) { var data = {}; var log = req.log.child({ component: 'req' }); data.reqId = req.reqId; data.method = req.method; if (req.ws) data.method = 'WS'; if (req._direct) data.method = "#".concat(data.method); data.host = req.headers.host; if (req.ws) { data.url = "".concat(req.ws.nsp.name, " ").concat(JSON.stringify((0, _omit["default"])(req.data, ['EIO', 'transport', 'token']))); } else { data.url = (req.baseUrl || '') + (req.url || '-'); } data.referer = req.header('referer') || req.header('referrer'); data.ua = req.header('user-agent'); data.ip = req.ip || req.connection.remoteAddress || req.socket && req.socket.remoteAddress || req.socket.socket && req.socket.socket.remoteAddress || '127.0.0.1'; if (__DEV__) { log[levelFn(data, 'start')](data, logStart(data)); if (req.body) { log.trace(JSON.stringify(req.body)); } } var hrtime = process.hrtime(); function logging() { data.status = res.statusCode; data.length = res.getHeader('Content-Length'); var diff = process.hrtime(hrtime); data.duration = diff[0] * 1e3 + diff[1] * 1e-6; log[levelFn(data, 'finish')](data, logFinish(data)); } res.on('close', logging); next(); }; }; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlcy9hY2Nlc3NMb2dnZXIuanMiXSwibmFtZXMiOlsibGV2ZWxGbiIsImRhdGEiLCJzdGF0dXMiLCJtZXRob2QiLCJlcnIiLCJkdXJhdGlvbiIsInVybFBhZCIsImxvZ1N0YXJ0IiwidXJsIiwicmVxSWQiLCJsb2dGaW5pc2giLCJ0aW1lIiwidG9GaXhlZCIsImxlbmd0aCIsImN0eCIsInJlcSIsInJlcyIsIm5leHQiLCJsb2ciLCJjaGlsZCIsImNvbXBvbmVudCIsIndzIiwiX2RpcmVjdCIsImhvc3QiLCJoZWFkZXJzIiwibnNwIiwibmFtZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJiYXNlVXJsIiwicmVmZXJlciIsImhlYWRlciIsInVhIiwiaXAiLCJjb25uZWN0aW9uIiwicmVtb3RlQWRkcmVzcyIsInNvY2tldCIsIl9fREVWX18iLCJib2R5IiwidHJhY2UiLCJocnRpbWUiLCJwcm9jZXNzIiwibG9nZ2luZyIsInN0YXR1c0NvZGUiLCJnZXRIZWFkZXIiLCJkaWZmIiwib24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBLFNBQVNBLE9BQVQsQ0FBaUJDLElBQWpCLEVBQXVCQyxNQUF2QixFQUErQjtBQUM3QixNQUFJRCxJQUFJLENBQUNFLE1BQUwsS0FBZ0IsSUFBcEIsRUFBMEI7QUFDeEIsUUFBSUQsTUFBTSxLQUFLLE9BQWYsRUFBd0I7QUFDdEIsYUFBTyxNQUFQO0FBQ0Q7O0FBQ0QsUUFBSUEsTUFBTSxLQUFLLFFBQWYsRUFBeUI7QUFDdkIsYUFBTyxPQUFQO0FBQ0Q7QUFDRjs7QUFDRCxNQUFJQSxNQUFNLEtBQUssT0FBZixFQUF3QjtBQUN0QixXQUFPLE9BQVA7QUFDRDs7QUFDRCxNQUFJRCxJQUFJLENBQUNHLEdBQUwsSUFBWUgsSUFBSSxDQUFDQyxNQUFMLElBQWUsR0FBM0IsSUFBa0NELElBQUksQ0FBQ0ksUUFBTCxHQUFnQixLQUF0RCxFQUE2RDtBQUMzRDtBQUNBLFdBQU8s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QU1DLElBQUksR0FBR0osT0FBTyxDQUFDRCxNQUFSLENBQWVBLE1BQWYsQ0FBYjtBQUNBdkMsTUFBQUEsSUFBSSxDQUFDSSxRQUFMLEdBQWdCd0MsSUFBSSxDQUFDLENBQUQsQ0FBSixHQUFVLEdBQVYsR0FBZ0JBLElBQUksQ0FBQyxDQUFELENBQUosR0FBVSxJQUExQztBQUVBM0IsTUFBQUEsR0FBRyxDQUFDbEIsT0FBTyxDQUFDQyxJQUFELEVBQU8sUUFBUCxDQUFSLENBQUgsQ0FBNkJBLElBQTdCLEVBQW1DUyxTQUFTLENBQUNULElBQUQsQ0FBNUM7QUFDRDs7QUFDRGUsSUFBQUEsR0FBRyxDQUFDOEIsRUFBSixDQUFPLE9BQVAsRUFBZ0JKLE9BQWhCO0FBQ0F6QixJQUFBQSxJQUFJO0FBQ0wsR0E1Q0Q7QUE2Q0QsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBnZXQgZnJvbSAnbG9kYXNoL2dldCc7XG5pbXBvcnQgb21pdCBmcm9tICdsb2Rhc2gvb21pdCc7XG5pbXBvcnQgbGVmdFBhZCBmcm9tICdAbHNranMvdXRpbHMvbGVmdFBhZCc7XG5cbmZ1bmN0aW9uIGxldmVsRm4oZGF0YSwgc3RhdHVzKSB7XG4gIGlmIChkYXRhLm1ldGhvZCA9PT0gJ1dTJykge1xuICAgIGlmIChzdGF0dXMgPT09ICdzdGFydCcpIHtcbiAgICAgIHJldHVybiAnaW5mbyc7XG4gICAgfVxuICAgIGlmIChzdGF0dXMgPT09ICdmaW5pc2gnKSB7XG4gICAgICByZXR1cm4gJ2RlYnVnJztcbiAgICB9XG4gIH1cbiAgaWYgKHN0YXR1cyA9PT0gJ3N0YXJ0Jykge1xuICAgIHJldHVybiAnZGVidWcnO1xuICB9XG4gIGlmIChkYXRhLmVyciB8fCBkYXRhLnN0YXR1cyA+PSA1MDAgfHwgZGF0YS5kdXJhdGlvbiA+IDEwMDAwKSB7XG4gICAgLy8gc2VydmVyIGludGVybmFsIGVycm9yIG9yIGVycm9yXG4gICAgcmV0dXJuICdlcnJvcic7XG4gIH1cbiAgaWYgKGRhdGEuc3RhdHVzID49IDQwMCB8fCBkYXRhLmR1cmF0aW9uID4gMzAwMCkge1xuICAgIC8vIGNsaWVudCBlcnJvclxuICAgIHJldHVybiAnd2Fybic7XG4gIH1cbiAgcmV0dXJuICdpbmZvJztcbn1cblxuY29uc3QgdXJsUGFkID0gLTIwO1xuXG5mdW5jdGlvbiBsb2dTdGFydChkYXRhKSB7XG4gIHJldHVybiBgJHtsZWZ0UGFkKGRhdGEubWV0aG9kLCA0KX0gJHtsZWZ0UGFkKGRhdGEudXJsLCB1cmxQYWQpfSAjJHtkYXRhLnJlcUlkfWA7IC8vICsgJ1xceDFiWzMzbVlBVUVCQU5cXHgxYlswbSBBWkFaQSdcbn1cblxuZnVuY3Rpb24gbG9nRmluaXNoKGRhdGEpIHtcbiAgY29uc3QgdGltZSA9IChkYXRhLmR1cmF0aW9uIHx8IDApLnRvRml4ZWQoMyk7XG4gIGNvbnN0IG1ldGhvZCA9IGxlZnRQYWQoZGF0YS5tZXRob2QsIDQpO1xuICBjb25zdCBsZW5ndGggPSBkYXRhLmxlbmd0aCB8fCAwO1xuICBpZiAoZGF0YS5tZXRob2QgPT09ICdXUycpIHtcbiAgICByZXR1cm4gYCR7bWV0aG9kfSAke2xlZnRQYWQoZGF0YS51cmwsIHVybFBhZCl9ICMke2RhdGEucmVxSWR9ICR7bGVmdFBhZCh0aW1lLCA3KX1tcyBgO1xuICB9XG4gIHJldHVybiBgJHttZXRob2R9ICR7bGVmdFBhZChkYXRhLnVybCwgdXJsUGFkKX0gIyR7ZGF0YS5yZXFJZH0gJHtsZWZ0UGFkKGRhdGEuc3RhdHVzLCAzKX0gJHtsZWZ0UGFkKFxuICAgIHRpbWUsXG4gICAgNyxcbiAgKX1tcyAke2xlbmd0aH1iIGA7XG59XG5cbmV4cG9ydCBkZWZhdWx0IChjdHgpID0+IHtcbiAgaWYgKCFnZXQoY3R4LCAnc2VydmVyQ29uZmlnLm1pZGRsZXdhcmVzLmFjY2Vzc0xvZ2dlcicpKSByZXR1cm4gbnVsbDtcbiAgcmV0dXJuIChyZXEsIHJlcywgbmV4dCkgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSB7fTtcbiAgICBjb25zdCBsb2cgPSByZXEubG9nLmNoaWxkKHtcbiAgICAgIGNvbXBvbmVudDogJ3JlcScsXG4gICAgfSk7XG5cbiAgICBkYXRhLnJlcUlkID0gcmVxLnJlcUlkO1xuICAgIGRhdGEubWV0aG9kID0gcmVxLm1ldGhvZDtcbiAgICBpZiAocmVxLndzKSBkYXRhLm1ldGhvZCA9ICdXUyc7XG4gICAgaWYgKHJlcS5fZGlyZWN0KSBkYXRhLm1ldGhvZCA9IGAjJHtkYXRhLm1ldGhvZH1gO1xuICAgIGRhdGEuaG9zdCA9IHJlcS5oZWFkZXJzLmhvc3Q7XG4gICAgaWYgKHJlcS53cykge1xuICAgICAgZGF0YS51cmwgPSBgJHtyZXEud3MubnNwLm5hbWV9ICR7SlNPTi5zdHJpbmdpZnkob21pdChyZXEuZGF0YSwgWydFSU8nLCAndHJhbnNwb3J0JywgJ3Rva2VuJ10pKX1gO1xuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhLnVybCA9IChyZXEuYmFzZVVybCB8fCAnJykgKyAocmVxLnVybCB8fCAnLScpO1xuICAgIH1cbiAgICBkYXRhLnJlZmVyZXIgPSByZXEuaGVhZGVyKCdyZWZlcmVyJykgfHwgcmVxLmhlYWRlcigncmVmZXJyZXInKTtcbiAgICBkYXRhLnVhID0gcmVxLmhlYWRlcigndXNlci1hZ2VudCcpO1xuICAgIGRhdGEuaXAgPVxuICAgICAgcmVxLmlwIHx8XG4gICAgICByZXEuY29ubmVjdGlvbi5yZW1vdGVBZGRyZXNzIHx8XG4gICAgICAocmVxLnNvY2tldCAmJiByZXEuc29ja2V0LnJlbW90ZUFkZHJlc3MpIHx8XG4gICAgICAocmVxLnNvY2tldC5zb2NrZXQgJiYgcmVxLnNvY2tldC5zb2NrZXQucmVtb3RlQWRkcmVzcykgfHxcbiAgICAgICcxMjcuMC4wLjEnO1xuXG4gICAgaWYgKF9fREVWX18pIHtcbiAgICAgIGxvZ1tsZXZlbEZuKGRhdGEsICdzdGFydCcpXShkYXRhLCBsb2dTdGFydChkYXRhKSk7XG4gICAgICBpZiAocmVxLmJvZHkpIHtcbiAgICAgICAgbG9nLnRyYWNlKEpTT04uc3RyaW5naWZ5KHJlcS5ib2R5KSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaHJ0aW1lID0gcHJvY2Vzcy5ocnRpbWUoKTtcbiAgICBmdW5jdGlvbiBsb2dnaW5nKCkge1xuICAgICAgZGF0YS5zdGF0dXMgPSByZXMuc3RhdHVzQ29kZTtcbiAgICAgIGRhdGEubGVuZ3RoID0gcmVzLmdldEhlYWRlcignQ29udGVudC1MZW5ndGgnKTtcblxuICAgICAgY29uc3QgZGlmZiA9IHByb2Nlc3MuaHJ0aW1lKGhydGltZSk7XG4gICAgICBkYXRhLmR1cmF0aW9uID0gZGlmZlswXSAqIDFlMyArIGRpZmZbMV0gKiAxZS02O1xuXG4gICAgICBsb2dbbGV2ZWxGbihkYXRhLCAnZmluaXNoJyldKGRhdGEsIGxvZ0ZpbmlzaChkYXRhKSk7XG4gICAgfVxuICAgIHJlcy5vbignY2xvc2UnLCBsb2dnaW5nKTtcbiAgICBuZXh0KCk7XG4gIH07XG59O1xuIl19 //# sourceMappingURL=accessLogger.js.map