@lskjs/server
Version:
LSK server.
110 lines (85 loc) • 12.2 kB
JavaScript
;
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