yodelay
Version:
Log and send error metrics off with ease.
92 lines (70 loc) • 8.99 kB
JavaScript
;
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==