UNPKG

logger-monitor

Version:
68 lines 2.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var uuid_1 = require("uuid"); var formatting_1 = require("./formatting"); var now = function () { return new Date().getTime(); }; var Logger = /** @class */ (function () { function Logger() { this.logs = []; this.settings = { showTimestamp: true, showInfoLogs: true }; this.timers = {}; } Logger.prototype.configure = function (settings) { if (!settings) { return; } for (var key in settings) { if (this.settings.hasOwnProperty(key)) { this.settings[key] = settings[key]; } } }; // Standard log object creation method to keep all logs in the same format. Logger.prototype.createLog = function (message, type, time) { return { timestamp: new Date(), type: type, message: message, time: time }; }; // Different log types Logger.prototype.info = function (message, timerId) { var log = this.createLog(message, 'info', this.endTimer(timerId)); if (this.settings.showInfoLogs) { console.log(formatting_1.formatLog(log)); } }; Logger.prototype.warning = function (message, timerId) { var log = this.createLog(message, 'warning', this.endTimer(timerId)); console.warn(formatting_1.formatLog(log)); }; Logger.prototype.error = function (message, timerId) { var log = this.createLog(message, 'error', this.endTimer(timerId)); console.error(formatting_1.formatLog(log)); }; Logger.prototype.startTimer = function () { var id = uuid_1.v4().toString(); this.timers[id] = now(); return id; }; Logger.prototype.endTimer = function (id) { if (!id) { return undefined; } if (this.timers[id]) { var time = now() - this.timers[id]; delete this.timers[id]; return time; } return undefined; }; return Logger; }()); exports.default = new Logger(); //# sourceMappingURL=logger.js.map