yodelay
Version:
Log and send error metrics off with ease.
90 lines (64 loc) • 7.8 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _winston = require("winston");
var _winston2 = _interopRequireDefault(_winston);
var _moment = require("moment");
var _moment2 = _interopRequireDefault(_moment);
var _unhandledRejection = require("./transports/unhandledRejection");
var _unhandledRejection2 = _interopRequireDefault(_unhandledRejection);
var _format = require("./format");
var _format2 = _interopRequireDefault(_format);
var _metric = require("./metric.js");
var _metric2 = _interopRequireDefault(_metric);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class Yodelay {
constructor(params) {
this.appName = params.appName;
this.alertOnError = params.alertOnError || true;
this.level = params.level || "debug";
this.metricsEndpoint = params.metricsEndpoint || null;
this.format = params.format || "json";
this.debugContext = params.debugContext || null;
this.info = this.info;
this.error = this.error;
this.debug = this.debug;
const logger = _winston2.default.createLogger({
level: this.level,
exitOnError: false
});
this.logger = logger;
this.metric = new _metric2.default({
metricsEndpoint: this.metricsEndpoint,
appName: this.appName,
logger: this.logger
});
new _format2.default(Object.assign({
debugContext: this.debugContext,
logger: this.logger
}, { format: this.format, appName: this.appName })).setFormat();
new _unhandledRejection2.default({
logger: this.logger,
appName: this.appName,
metric: this.metric
}).initialize();
}
debug(message, data, context) {
const logMessage = this.logger.logMessageFormat(message || "", data || "", context || "");
this.logger.debug(logMessage);
}
info(message, data, context) {
const logMessage = this.logger.logMessageFormat(message || "", data || "", context || "");
this.logger.info(logMessage);
}
error(message, data, context) {
const logMessage = this.logger.logMessageFormat(message || "", data || "", context || "");
this.logger.error(logMessage);
if (this.metricsEndpoint) {
this.metric.send(logMessage, "error");
}
}
}
exports.default = Yodelay;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC5qcyJdLCJuYW1lcyI6WyJZb2RlbGF5IiwiY29uc3RydWN0b3IiLCJwYXJhbXMiLCJhcHBOYW1lIiwiYWxlcnRPbkVycm9yIiwibGV2ZWwiLCJtZXRyaWNzRW5kcG9pbnQiLCJmb3JtYXQiLCJkZWJ1Z0NvbnRleHQiLCJpbmZvIiwiZXJyb3IiLCJkZWJ1ZyIsImxvZ2dlciIsIndpbnN0b24iLCJjcmVhdGVMb2dnZXIiLCJleGl0T25FcnJvciIsIm1ldHJpYyIsIk1ldHJpYyIsIkZvcm1hdExvZ2dlciIsInNldEZvcm1hdCIsIlVuaGFuZGxlZFJlamVjdGlvblRyYW5zcG9ydCIsImluaXRpYWxpemUiLCJtZXNzYWdlIiwiZGF0YSIsImNvbnRleHQiLCJsb2dNZXNzYWdlIiwibG9nTWVzc2FnZUZvcm1hdCIsInNlbmQiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBOzs7O0FBQ0E7Ozs7QUFFQTs7OztBQUVBOzs7O0FBQ0E7Ozs7OztBQUVBLE1BQU1BLE9BQU4sQ0FBYztBQUNaQyxjQUFZQyxNQUFaLEVBQW9CO0FBQ2xCLFNBQUtDLE9BQUwsR0FBZUQsT0FBT0MsT0FBdEI7QUFDQSxTQUFLQyxZQUFMLEdBQW9CRixPQUFPRSxZQUFQLElBQXVCLElBQTNDO0FBQ0EsU0FBS0MsS0FBTCxHQUFhSCxPQUFPRyxLQUFQLElBQWdCLE9BQTdCO0FBQ0EsU0FBS0MsZUFBTCxHQUF1QkosT0FBT0ksZUFBUCxJQUEwQixJQUFqRDtBQUNBLFNBQUtDLE1BQUwsR0FBY0wsT0FBT0ssTUFBUCxJQUFpQixNQUEvQjtBQUNBLFNBQUtDLFlBQUwsR0FBb0JOLE9BQU9NLFlBQVAsSUFBdUIsSUFBM0M7O0FBRUEsU0FBS0MsSUFBTCxHQUFZLEtBQUtBLElBQWpCO0FBQ0EsU0FBS0MsS0FBTCxHQUFhLEtBQUtBLEtBQWxCO0FBQ0EsU0FBS0MsS0FBTCxHQUFhLEtBQUtBLEtBQWxCOztBQUVBLFVBQU1DLFNBQVNDLGtCQUFRQyxZQUFSLENBQXFCO0FBQ2xDVCxhQUFPLEtBQUtBLEtBRHNCO0FBRWxDVSxtQkFBYTtBQUZxQixLQUFyQixDQUFmOztBQUtBLFNBQUtILE1BQUwsR0FBY0EsTUFBZDtBQUNBLFNBQUtJLE1BQUwsR0FBYyxJQUFJQyxnQkFBSixDQUFXO0FBQ3ZCWCx1QkFBaUIsS0FBS0EsZUFEQztBQUV2QkgsZUFBUyxLQUFLQSxPQUZTO0FBR3ZCUyxjQUFRLEtBQUtBO0FBSFUsS0FBWCxDQUFkOztBQU1BLFFBQUlNLGdCQUFKO0FBQ0VWLG9CQUFjLEtBQUtBLFlBRHJCO0FBRUVJLGNBQVEsS0FBS0E7QUFGZixPQUdLLEVBQUVMLFFBQVEsS0FBS0EsTUFBZixFQUF1QkosU0FBUyxLQUFLQSxPQUFyQyxFQUhMLEdBSUdnQixTQUpIOztBQU1BLFFBQUlDLDRCQUFKLENBQWdDO0FBQzlCUixjQUFRLEtBQUtBLE1BRGlCO0FBRTlCVCxlQUFTLEtBQUtBLE9BRmdCO0FBRzlCYSxjQUFRLEtBQUtBO0FBSGlCLEtBQWhDLEVBSUdLLFVBSkg7QUFLRDs7QUFFRFYsUUFBTVcsT0FBTixFQUFlQyxJQUFmLEVBQXFCQyxPQUFyQixFQUE4QjtBQUM1QixVQUFNQyxhQUFhLEtBQUtiLE1BQUwsQ0FBWWMsZ0JBQVosQ0FDakJKLFdBQVcsRUFETSxFQUVqQkMsUUFBUSxFQUZTLEVBR2pCQyxXQUFXLEVBSE0sQ0FBbkI7O0FBTUEsU0FBS1osTUFBTCxDQUFZRCxLQUFaLENBQWtCYyxVQUFsQjtBQUNEOztBQUVEaEIsT0FBS2EsT0FBTCxFQUFjQyxJQUFkLEVBQW9CQyxPQUFwQixFQUE2QjtBQUMzQixVQUFNQyxhQUFhLEtBQUtiLE1BQUwsQ0FBWWMsZ0JBQVosQ0FDakJKLFdBQVcsRUFETSxFQUVqQkMsUUFBUSxFQUZTLEVBR2pCQyxXQUFXLEVBSE0sQ0FBbkI7O0FBTUEsU0FBS1osTUFBTCxDQUFZSCxJQUFaLENBQWlCZ0IsVUFBakI7QUFDRDs7QUFFRGYsUUFBTVksT0FBTixFQUFlQyxJQUFmLEVBQXFCQyxPQUFyQixFQUE4QjtBQUM1QixVQUFNQyxhQUFhLEtBQUtiLE1BQUwsQ0FBWWMsZ0JBQVosQ0FDakJKLFdBQVcsRUFETSxFQUVqQkMsUUFBUSxFQUZTLEVBR2pCQyxXQUFXLEVBSE0sQ0FBbkI7O0FBTUEsU0FBS1osTUFBTCxDQUFZRixLQUFaLENBQWtCZSxVQUFsQjs7QUFFQSxRQUFJLEtBQUtuQixlQUFULEVBQTBCO0FBQ3hCLFdBQUtVLE1BQUwsQ0FBWVcsSUFBWixDQUFpQkYsVUFBakIsRUFBNkIsT0FBN0I7QUFDRDtBQUNGO0FBdEVXOztrQkF5RUN6QixPIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHdpbnN0b24gZnJvbSBcIndpbnN0b25cIjtcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xuXG5pbXBvcnQgVW5oYW5kbGVkUmVqZWN0aW9uVHJhbnNwb3J0IGZyb20gXCIuL3RyYW5zcG9ydHMvdW5oYW5kbGVkUmVqZWN0aW9uXCI7XG5cbmltcG9ydCBGb3JtYXRMb2dnZXIgZnJvbSBcIi4vZm9ybWF0XCI7XG5pbXBvcnQgTWV0cmljIGZyb20gXCIuL21ldHJpYy5qc1wiO1xuXG5jbGFzcyBZb2RlbGF5IHtcbiAgY29uc3RydWN0b3IocGFyYW1zKSB7XG4gICAgdGhpcy5hcHBOYW1lID0gcGFyYW1zLmFwcE5hbWU7XG4gICAgdGhpcy5hbGVydE9uRXJyb3IgPSBwYXJhbXMuYWxlcnRPbkVycm9yIHx8IHRydWU7XG4gICAgdGhpcy5sZXZlbCA9IHBhcmFtcy5sZXZlbCB8fCBcImRlYnVnXCI7XG4gICAgdGhpcy5tZXRyaWNzRW5kcG9pbnQgPSBwYXJhbXMubWV0cmljc0VuZHBvaW50IHx8IG51bGw7XG4gICAgdGhpcy5mb3JtYXQgPSBwYXJhbXMuZm9ybWF0IHx8IFwianNvblwiO1xuICAgIHRoaXMuZGVidWdDb250ZXh0ID0gcGFyYW1zLmRlYnVnQ29udGV4dCB8fCBudWxsO1xuXG4gICAgdGhpcy5pbmZvID0gdGhpcy5pbmZvO1xuICAgIHRoaXMuZXJyb3IgPSB0aGlzLmVycm9yO1xuICAgIHRoaXMuZGVidWcgPSB0aGlzLmRlYnVnO1xuXG4gICAgY29uc3QgbG9nZ2VyID0gd2luc3Rvbi5jcmVhdGVMb2dnZXIoe1xuICAgICAgbGV2ZWw6IHRoaXMubGV2ZWwsXG4gICAgICBleGl0T25FcnJvcjogZmFsc2VcbiAgICB9KTtcblxuICAgIHRoaXMubG9nZ2VyID0gbG9nZ2VyO1xuICAgIHRoaXMubWV0cmljID0gbmV3IE1ldHJpYyh7XG4gICAgICBtZXRyaWNzRW5kcG9pbnQ6IHRoaXMubWV0cmljc0VuZHBvaW50LFxuICAgICAgYXBwTmFtZTogdGhpcy5hcHBOYW1lLFxuICAgICAgbG9nZ2VyOiB0aGlzLmxvZ2dlclxuICAgIH0pO1xuXG4gICAgbmV3IEZvcm1hdExvZ2dlcih7XG4gICAgICBkZWJ1Z0NvbnRleHQ6IHRoaXMuZGVidWdDb250ZXh0LFxuICAgICAgbG9nZ2VyOiB0aGlzLmxvZ2dlcixcbiAgICAgIC4uLnsgZm9ybWF0OiB0aGlzLmZvcm1hdCwgYXBwTmFtZTogdGhpcy5hcHBOYW1lIH1cbiAgICB9KS5zZXRGb3JtYXQoKTtcblxuICAgIG5ldyBVbmhhbmRsZWRSZWplY3Rpb25UcmFuc3BvcnQoe1xuICAgICAgbG9nZ2VyOiB0aGlzLmxvZ2dlcixcbiAgICAgIGFwcE5hbWU6IHRoaXMuYXBwTmFtZSxcbiAgICAgIG1ldHJpYzogdGhpcy5tZXRyaWNcbiAgICB9KS5pbml0aWFsaXplKCk7XG4gIH1cblxuICBkZWJ1ZyhtZXNzYWdlLCBkYXRhLCBjb250ZXh0KSB7XG4gICAgY29uc3QgbG9nTWVzc2FnZSA9IHRoaXMubG9nZ2VyLmxvZ01lc3NhZ2VGb3JtYXQoXG4gICAgICBtZXNzYWdlIHx8IFwiXCIsXG4gICAgICBkYXRhIHx8IFwiXCIsXG4gICAgICBjb250ZXh0IHx8IFwiXCJcbiAgICApO1xuXG4gICAgdGhpcy5sb2dnZXIuZGVidWcobG9nTWVzc2FnZSk7XG4gIH1cblxuICBpbmZvKG1lc3NhZ2UsIGRhdGEsIGNvbnRleHQpIHtcbiAgICBjb25zdCBsb2dNZXNzYWdlID0gdGhpcy5sb2dnZXIubG9nTWVzc2FnZUZvcm1hdChcbiAgICAgIG1lc3NhZ2UgfHwgXCJcIixcbiAgICAgIGRhdGEgfHwgXCJcIixcbiAgICAgIGNvbnRleHQgfHwgXCJcIlxuICAgICk7XG5cbiAgICB0aGlzLmxvZ2dlci5pbmZvKGxvZ01lc3NhZ2UpO1xuICB9XG5cbiAgZXJyb3IobWVzc2FnZSwgZGF0YSwgY29udGV4dCkge1xuICAgIGNvbnN0IGxvZ01lc3NhZ2UgPSB0aGlzLmxvZ2dlci5sb2dNZXNzYWdlRm9ybWF0KFxuICAgICAgbWVzc2FnZSB8fCBcIlwiLFxuICAgICAgZGF0YSB8fCBcIlwiLFxuICAgICAgY29udGV4dCB8fCBcIlwiXG4gICAgKTtcblxuICAgIHRoaXMubG9nZ2VyLmVycm9yKGxvZ01lc3NhZ2UpO1xuXG4gICAgaWYgKHRoaXMubWV0cmljc0VuZHBvaW50KSB7XG4gICAgICB0aGlzLm1ldHJpYy5zZW5kKGxvZ01lc3NhZ2UsIFwiZXJyb3JcIik7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFlvZGVsYXk7XG4iXX0=