UNPKG

yodelay

Version:

Log and send error metrics off with ease.

92 lines (70 loc) 8.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _winston = require("winston"); var _winston2 = _interopRequireDefault(_winston); var _moment = require("moment"); var _moment2 = _interopRequireDefault(_moment); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class FormatLogger { constructor(params) { this.logger = params.logger; this.logger.logMessageFormat = this.logMessageFormat.bind(this); this.format = params.format; this.appName = params.appName; this.debugContext = params.debugContext; } filterContext() { var _this = this; return _winston2.default.format(function (info) { if (_this.debugContext !== null && info.context !== _this.debugContext) { return false; } return info; })(); } simpleBaseFormat() { const base = _winston2.default.format.printf(function (info) { const string = `${(0, _moment2.default)(info.timestamp)} [${info.app}] ${info.context ? `[context: ${info.context}]}` : ""} ${info.level}: ${info.message}`; if (info.data) { return `${string} ${JSON.stringify(info.data)}`; } return string; }); return _winston2.default.format.combine(_winston2.default.format.timestamp(), base); } logMessageFormat(message, data, context) { let logMessage = { app: this.appName, message: message }; if (data) { logMessage.data = data; } if (context) { logMessage.context = context; } return logMessage; } setFormat() { switch (this.format) { case "json": this.logger.add(new _winston2.default.transports.Console({ format: _winston2.default.format.combine(this.filterContext(), _winston2.default.format.timestamp(), _winston2.default.format.json()) })); break; case "simple": this.logger.add(new _winston2.default.transports.Console({ format: _winston2.default.format.combine(this.filterContext(), _winston2.default.format.colorize(), _winston2.default.format.simple(), this.simpleBaseFormat()) })); break; default: this.logger.add(new _winston2.default.transports.Console({ format: _winston2.default.format.combine(this.filterContext(), _winston2.default.format.colorize(), _winston2.default.format.simple(), simpleBase) })); } } } exports.default = FormatLogger; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3JtYXQuanMiXSwibmFtZXMiOlsiRm9ybWF0TG9nZ2VyIiwiY29uc3RydWN0b3IiLCJwYXJhbXMiLCJsb2dnZXIiLCJsb2dNZXNzYWdlRm9ybWF0IiwiYmluZCIsImZvcm1hdCIsImFwcE5hbWUiLCJkZWJ1Z0NvbnRleHQiLCJmaWx0ZXJDb250ZXh0Iiwid2luc3RvbiIsImluZm8iLCJjb250ZXh0Iiwic2ltcGxlQmFzZUZvcm1hdCIsImJhc2UiLCJwcmludGYiLCJzdHJpbmciLCJ0aW1lc3RhbXAiLCJhcHAiLCJsZXZlbCIsIm1lc3NhZ2UiLCJkYXRhIiwiSlNPTiIsInN0cmluZ2lmeSIsImNvbWJpbmUiLCJsb2dNZXNzYWdlIiwic2V0Rm9ybWF0IiwiYWRkIiwidHJhbnNwb3J0cyIsIkNvbnNvbGUiLCJqc29uIiwiY29sb3JpemUiLCJzaW1wbGUiLCJzaW1wbGVCYXNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7OztBQUNBOzs7Ozs7QUFFQSxNQUFNQSxZQUFOLENBQW1CO0FBQ2pCQyxjQUFZQyxNQUFaLEVBQW9CO0FBQ2xCLFNBQUtDLE1BQUwsR0FBY0QsT0FBT0MsTUFBckI7QUFDQSxTQUFLQSxNQUFMLENBQVlDLGdCQUFaLEdBQStCLEtBQUtBLGdCQUFMLENBQXNCQyxJQUF0QixDQUEyQixJQUEzQixDQUEvQjtBQUNBLFNBQUtDLE1BQUwsR0FBY0osT0FBT0ksTUFBckI7QUFDQSxTQUFLQyxPQUFMLEdBQWVMLE9BQU9LLE9BQXRCO0FBQ0EsU0FBS0MsWUFBTCxHQUFvQk4sT0FBT00sWUFBM0I7QUFDRDs7QUFFREMsa0JBQWdCO0FBQUE7O0FBQ2QsV0FBT0Msa0JBQVFKLE1BQVIsQ0FBZSxVQUFDSyxJQUFELEVBQVU7QUFDOUIsVUFBSSxNQUFLSCxZQUFMLEtBQXNCLElBQXRCLElBQThCRyxLQUFLQyxPQUFMLEtBQWlCLE1BQUtKLFlBQXhELEVBQXNFO0FBQ3BFLGVBQU8sS0FBUDtBQUNEOztBQUVELGFBQU9HLElBQVA7QUFDRCxLQU5NLEdBQVA7QUFPRDs7QUFFREUscUJBQW1CO0FBQ2pCLFVBQU1DLE9BQU9KLGtCQUFRSixNQUFSLENBQWVTLE1BQWYsQ0FBc0IsZ0JBQVE7QUFDekMsWUFBTUMsU0FBVSxHQUFFLHNCQUFPTCxLQUFLTSxTQUFaLENBQXVCLEtBQUlOLEtBQUtPLEdBQUksS0FDcERQLEtBQUtDLE9BQUwsR0FBZ0IsYUFBWUQsS0FBS0MsT0FBUSxJQUF6QyxHQUErQyxFQUM5QyxJQUFHRCxLQUFLUSxLQUFNLEtBQUlSLEtBQUtTLE9BQVEsRUFGbEM7O0FBSUEsVUFBSVQsS0FBS1UsSUFBVCxFQUFlO0FBQ2IsZUFBUSxHQUFFTCxNQUFPLElBQUdNLEtBQUtDLFNBQUwsQ0FBZVosS0FBS1UsSUFBcEIsQ0FBMEIsRUFBOUM7QUFDRDs7QUFFRCxhQUFPTCxNQUFQO0FBQ0QsS0FWWSxDQUFiOztBQVlBLFdBQU9OLGtCQUFRSixNQUFSLENBQWVrQixPQUFmLENBQXVCZCxrQkFBUUosTUFBUixDQUFlVyxTQUFmLEVBQXZCLEVBQW1ESCxJQUFuRCxDQUFQO0FBQ0Q7O0FBRURWLG1CQUFpQmdCLE9BQWpCLEVBQTBCQyxJQUExQixFQUFnQ1QsT0FBaEMsRUFBeUM7QUFDdkMsUUFBSWEsYUFBYTtBQUNmUCxXQUFLLEtBQUtYLE9BREs7QUFFZmEsZUFBU0E7QUFGTSxLQUFqQjs7QUFLQSxRQUFJQyxJQUFKLEVBQVU7QUFDUkksaUJBQVdKLElBQVgsR0FBa0JBLElBQWxCO0FBQ0Q7O0FBRUQsUUFBSVQsT0FBSixFQUFhO0FBQ1hhLGlCQUFXYixPQUFYLEdBQXFCQSxPQUFyQjtBQUNEOztBQUVELFdBQU9hLFVBQVA7QUFDRDs7QUFFREMsY0FBWTtBQUNWLFlBQVEsS0FBS3BCLE1BQWI7QUFDRSxXQUFLLE1BQUw7QUFDRSxhQUFLSCxNQUFMLENBQVl3QixHQUFaLENBQ0UsSUFBSWpCLGtCQUFRa0IsVUFBUixDQUFtQkMsT0FBdkIsQ0FBK0I7QUFDN0J2QixrQkFBUUksa0JBQVFKLE1BQVIsQ0FBZWtCLE9BQWYsQ0FDTixLQUFLZixhQUFMLEVBRE0sRUFFTkMsa0JBQVFKLE1BQVIsQ0FBZVcsU0FBZixFQUZNLEVBR05QLGtCQUFRSixNQUFSLENBQWV3QixJQUFmLEVBSE07QUFEcUIsU0FBL0IsQ0FERjs7QUFVQTtBQUNGLFdBQUssUUFBTDtBQUNFLGFBQUszQixNQUFMLENBQVl3QixHQUFaLENBQ0UsSUFBSWpCLGtCQUFRa0IsVUFBUixDQUFtQkMsT0FBdkIsQ0FBK0I7QUFDN0J2QixrQkFBUUksa0JBQVFKLE1BQVIsQ0FBZWtCLE9BQWYsQ0FDTixLQUFLZixhQUFMLEVBRE0sRUFFTkMsa0JBQVFKLE1BQVIsQ0FBZXlCLFFBQWYsRUFGTSxFQUdOckIsa0JBQVFKLE1BQVIsQ0FBZTBCLE1BQWYsRUFITSxFQUlOLEtBQUtuQixnQkFBTCxFQUpNO0FBRHFCLFNBQS9CLENBREY7O0FBV0E7QUFDRjtBQUNFLGFBQUtWLE1BQUwsQ0FBWXdCLEdBQVosQ0FDRSxJQUFJakIsa0JBQVFrQixVQUFSLENBQW1CQyxPQUF2QixDQUErQjtBQUM3QnZCLGtCQUFRSSxrQkFBUUosTUFBUixDQUFla0IsT0FBZixDQUNOLEtBQUtmLGFBQUwsRUFETSxFQUVOQyxrQkFBUUosTUFBUixDQUFleUIsUUFBZixFQUZNLEVBR05yQixrQkFBUUosTUFBUixDQUFlMEIsTUFBZixFQUhNLEVBSU5DLFVBSk07QUFEcUIsU0FBL0IsQ0FERjtBQTNCSjtBQXNDRDtBQTNGZ0I7O2tCQThGSmpDLFkiLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHdpbnN0b24gZnJvbSBcIndpbnN0b25cIjtcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuXG5jbGFzcyBGb3JtYXRMb2dnZXIge1xuICBjb25zdHJ1Y3RvcihwYXJhbXMpIHtcbiAgICB0aGlzLmxvZ2dlciA9IHBhcmFtcy5sb2dnZXI7XG4gICAgdGhpcy5sb2dnZXIubG9nTWVzc2FnZUZvcm1hdCA9IHRoaXMubG9nTWVzc2FnZUZvcm1hdC5iaW5kKHRoaXMpO1xuICAgIHRoaXMuZm9ybWF0ID0gcGFyYW1zLmZvcm1hdDtcbiAgICB0aGlzLmFwcE5hbWUgPSBwYXJhbXMuYXBwTmFtZTtcbiAgICB0aGlzLmRlYnVnQ29udGV4dCA9IHBhcmFtcy5kZWJ1Z0NvbnRleHQ7XG4gIH1cblxuICBmaWx0ZXJDb250ZXh0KCkge1xuICAgIHJldHVybiB3aW5zdG9uLmZvcm1hdCgoaW5mbykgPT4ge1xuICAgICAgaWYgKHRoaXMuZGVidWdDb250ZXh0ICE9PSBudWxsICYmIGluZm8uY29udGV4dCAhPT0gdGhpcy5kZWJ1Z0NvbnRleHQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gaW5mbztcbiAgICB9KSgpO1xuICB9XG5cbiAgc2ltcGxlQmFzZUZvcm1hdCgpIHtcbiAgICBjb25zdCBiYXNlID0gd2luc3Rvbi5mb3JtYXQucHJpbnRmKGluZm8gPT4ge1xuICAgICAgY29uc3Qgc3RyaW5nID0gYCR7bW9tZW50KGluZm8udGltZXN0YW1wKX0gWyR7aW5mby5hcHB9XSAke1xuICAgICAgICBpbmZvLmNvbnRleHQgPyBgW2NvbnRleHQ6ICR7aW5mby5jb250ZXh0fV19YCA6IFwiXCJcbiAgICAgICAgfSAke2luZm8ubGV2ZWx9OiAke2luZm8ubWVzc2FnZX1gO1xuXG4gICAgICBpZiAoaW5mby5kYXRhKSB7XG4gICAgICAgIHJldHVybiBgJHtzdHJpbmd9ICR7SlNPTi5zdHJpbmdpZnkoaW5mby5kYXRhKX1gO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gc3RyaW5nO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHdpbnN0b24uZm9ybWF0LmNvbWJpbmUod2luc3Rvbi5mb3JtYXQudGltZXN0YW1wKCksIGJhc2UpO1xuICB9XG5cbiAgbG9nTWVzc2FnZUZvcm1hdChtZXNzYWdlLCBkYXRhLCBjb250ZXh0KSB7XG4gICAgbGV0IGxvZ01lc3NhZ2UgPSB7XG4gICAgICBhcHA6IHRoaXMuYXBwTmFtZSxcbiAgICAgIG1lc3NhZ2U6IG1lc3NhZ2VcbiAgICB9O1xuXG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGxvZ01lc3NhZ2UuZGF0YSA9IGRhdGE7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRleHQpIHtcbiAgICAgIGxvZ01lc3NhZ2UuY29udGV4dCA9IGNvbnRleHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGxvZ01lc3NhZ2U7XG4gIH1cblxuICBzZXRGb3JtYXQoKSB7XG4gICAgc3dpdGNoICh0aGlzLmZvcm1hdCkge1xuICAgICAgY2FzZSBcImpzb25cIjpcbiAgICAgICAgdGhpcy5sb2dnZXIuYWRkKFxuICAgICAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuQ29uc29sZSh7XG4gICAgICAgICAgICBmb3JtYXQ6IHdpbnN0b24uZm9ybWF0LmNvbWJpbmUoXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyQ29udGV4dCgpLFxuICAgICAgICAgICAgICB3aW5zdG9uLmZvcm1hdC50aW1lc3RhbXAoKSxcbiAgICAgICAgICAgICAgd2luc3Rvbi5mb3JtYXQuanNvbigpXG4gICAgICAgICAgICApXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJzaW1wbGVcIjpcbiAgICAgICAgdGhpcy5sb2dnZXIuYWRkKFxuICAgICAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuQ29uc29sZSh7XG4gICAgICAgICAgICBmb3JtYXQ6IHdpbnN0b24uZm9ybWF0LmNvbWJpbmUoXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyQ29udGV4dCgpLFxuICAgICAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5jb2xvcml6ZSgpLFxuICAgICAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5zaW1wbGUoKSxcbiAgICAgICAgICAgICAgdGhpcy5zaW1wbGVCYXNlRm9ybWF0KClcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhpcy5sb2dnZXIuYWRkKFxuICAgICAgICAgIG5ldyB3aW5zdG9uLnRyYW5zcG9ydHMuQ29uc29sZSh7XG4gICAgICAgICAgICBmb3JtYXQ6IHdpbnN0b24uZm9ybWF0LmNvbWJpbmUoXG4gICAgICAgICAgICAgIHRoaXMuZmlsdGVyQ29udGV4dCgpLFxuICAgICAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5jb2xvcml6ZSgpLFxuICAgICAgICAgICAgICB3aW5zdG9uLmZvcm1hdC5zaW1wbGUoKSxcbiAgICAgICAgICAgICAgc2ltcGxlQmFzZVxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZvcm1hdExvZ2dlcjtcbiJdfQ==