logger-monitor
Version:
Quick and easy logging for JS.
68 lines • 2.2 kB
JavaScript
;
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