@lskjs/log
Version:
Логгер совмещающий лучшие черты morgan, winston, bunyan, logrus. debug. Базируется на debug-level.
132 lines (97 loc) • 4.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.prettyLevel = exports.prettyContent = exports.isUrlLog = void 0;
exports.prettyMarker = prettyMarker;
exports.prettyUrl = exports.prettyTime = exports.prettyStatus = exports.prettySize = exports.prettyReqId = exports.prettyPath = exports.prettyNs = exports.prettyMethod = void 0;
var _color = require("../color");
var _env = require("../utils/env");
var _hashCode = require("../utils/hashCode");
var _leftPad = require("../utils/leftPad");
/* eslint-disable no-nested-ternary */
var LOG_VIEW = (0, _env.env)('LOG_VIEW', 'short');
var prettyPathLength = 20;
var prettyPath = function prettyPath(url) {
var defaultUrlPad = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
prettyPathLength = Math.max(url.length, prettyPathLength, defaultUrlPad);
return (0, _leftPad.leftPad)(url, -prettyPathLength);
};
exports.prettyPath = prettyPath;
var prettyStatus = function prettyStatus(status) {
var colorName = status >= 500 ? 'error' : status >= 400 ? 'warn' : status >= 300 ? 'debug' : status === 200 ? null // 'bgGreen'
: 'bgCyan';
return (0, _color.color)(colorName, (0, _leftPad.leftPad)(status, 3));
};
exports.prettyStatus = prettyStatus;
var prettyReqId = function prettyReqId(reqId) {
return (0, _leftPad.leftPad)("#".concat(reqId), 3);
};
exports.prettyReqId = prettyReqId;
var prettyMethod = function prettyMethod(method) {
// eslint-disable-next-line no-nested-ternary
var colorName = method === 'REMOVE' ? 'error' : method === 'WS' ? 'debug' : null;
return (0, _color.color)(colorName, (0, _leftPad.leftPad)(method, 4));
};
exports.prettyMethod = prettyMethod;
var prettyTime = function prettyTime(ms) {
var colorName = ms >= 10 * 1000 ? 'error' : ms >= 3 * 1000 ? 'warn' : null;
var res;
if (!ms) {
res = '-';
} else if (ms > 10 * 60 * 1000) {
res = "".concat(Math.round(ms / 60 / 1000), "m");
} else if (ms > 1 * 1000) {
res = "".concat(Math.round(ms / 1000), "s ");
} else {
res = "".concat(ms.toFixed(0), "ms");
}
res = (0, _leftPad.leftPad)(res, 5);
return (0, _color.color)(colorName, (0, _leftPad.leftPad)(res, 5));
};
exports.prettyTime = prettyTime;
var prettySize = function prettySize(bytes) {
var seperator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
var sizes = ['b', 'KB', 'MB', 'GB', 'TB'];
if (!bytes) return '-';
var i = parseInt(String(Math.floor(Math.log(bytes) / Math.log(1024))), 10);
if (i === 0) return "".concat(bytes).concat(seperator).concat(sizes[i]);
return "".concat((bytes / Math.pow(1024, i)).toFixed(1)).concat(seperator).concat(sizes[i]);
};
exports.prettySize = prettySize;
var prettyNs = function prettyNs(names) {
return names.map(function (name) {
return (0, _color.hashColor)(name, name);
}).join(':');
};
exports.prettyNs = prettyNs;
function prettyMarker(key) {
var markers = ['•', '☼', '○', '♠', '♠', '♦', '♥'];
var marker = markers[(0, _hashCode.hashCode)("2".concat(key)) % markers.length];
return (0, _color.hashColor)(key, marker);
}
var prettyLevel = function prettyLevel() {
var level = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var logLevelStr = LOG_VIEW === 'short' ? (level[0] || '').toLowerCase() : (0, _leftPad.leftPad)(level, 5);
logLevelStr = "[".concat(logLevelStr, "]");
return (0, _color.color)(level, logLevelStr);
};
exports.prettyLevel = prettyLevel;
var prettyContent = function prettyContent() {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return args;
};
exports.prettyContent = prettyContent;
var isUrlLog = function isUrlLog(mainArg) {
return mainArg.name === 'req' || mainArg.method && mainArg.url && mainArg.status;
}; // reqId
exports.isUrlLog = isUrlLog;
var prettyUrl = function prettyUrl(mainArg) {
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
level = _ref.level;
return [prettyMethod(mainArg.method), prettyPath(mainArg.url), prettyReqId(mainArg.reqId), level !== 'debug' && mainArg.method !== 'WS' ? prettyStatus(mainArg.status) : null, level !== 'debug' && prettyTime(mainArg.duration), level !== 'debug' && mainArg.method !== 'WS' ? prettySize(mainArg.length) : null].filter(Boolean).join(' ');
}; // export default pretty;
exports.prettyUrl = prettyUrl;
//# sourceMappingURL=utils.js.map