UNPKG

@lskjs/log

Version:

Логгер совмещающий лучшие черты morgan, winston, bunyan, logrus. debug. Базируется на debug-level.

132 lines (97 loc) 4.51 kB
"use strict"; 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