UNPKG

plogger-sdk

Version:

Typescript based frontend logging library compatible with multiple transports and JS/TS frameworks

191 lines 7.7 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.logLevel = exports.pLogger = void 0; var Logger_1 = require("../Logger"); var logLevel_1 = require("../logLevel"); Object.defineProperty(exports, "logLevel", { enumerable: true, get: function () { return logLevel_1.logLevel; } }); var log_record_1 = require("../logs/log-record"); /** * The main library abstraction * @param name string * @param hideLogPositionForPerformance boolean * @param stackDepth number * @param minLevel logLevel * @param formatter string * @param staticParams Object */ var pLogger = /** @class */ (function (_super) { __extends(pLogger, _super); function pLogger(_a) { var _b = _a.name, name = _b === void 0 ? "Root" : _b, _c = _a.minLevel, minLevel = _c === void 0 ? null : _c, _d = _a.formatter, formatter = _d === void 0 ? null : _d, _e = _a.staticParams, staticParams = _e === void 0 ? {} : _e, _f = _a.hideLogPositionForPerformance, hideLogPositionForPerformance = _f === void 0 ? true : _f, _g = _a.stackDepth, stackDepth = _g === void 0 ? 0 : _g; var _this = _super.call(this) || this; _this.handlers = []; _this.level = minLevel; _this.formatter = formatter; _this.name = name; _this.hideLogPositionForPerformance = hideLogPositionForPerformance; _this.stackDepth = stackDepth; _this.staticParams = staticParams; _this.logEnums = {}; _this.enumMessages = {}; _this.timestampGenerator = null; return _this; } /** * Add the logger to send the logs to respective transports. * @param logger BaseLogger */ pLogger.prototype.addHandler = function (logger) { var index = this.handlers.indexOf(logger, 0); if (index == -1) { this.handlers.push(logger); } }; pLogger.prototype.removeHandler = function (logger) { var index = this.handlers.indexOf(logger, 0); if (index > -1) { this.handlers.splice(index, 1); } }; pLogger.prototype.checkHandlers = function () { //using this method for debugging purposes console.trace("pLoggerSDK Handlers: ", this.handlers); }; pLogger.prototype.setTimestampGenerator = function (timestampGenerator) { this.timestampGenerator = timestampGenerator; }; // setLevel log threshold pLogger.prototype.verify_log_level = function (threshold, incoming_level) { if (threshold != null && logLevel_1.logLevels[incoming_level].rank > logLevel_1.logLevels[threshold].rank) { return false; } return true; }; /** * * @param logEnums - user defined object keys * defined in format * { * key1 : "key1", * key2 : "key2" * ... * } */ pLogger.prototype.setLogEnums = function (logEnums) { this.logEnums = logEnums; }; /** * * @param enumMessages - user defined object consisting of message object literals mapped to logEnums */ pLogger.prototype.setEnumMessages = function (enumMessages) { this.enumMessages = enumMessages; }; /** * define new staticParams for pLogger * @param newParams - dynamic object literal */ pLogger.prototype.updateParams = function (newParams) { this.staticParams = newParams; }; /** * add on new staticParams or override preexisting staticParams. * @param newParams - dynamic object literal */ pLogger.prototype.appendParams = function (newParams) { var buffer = __assign(__assign({}, this.staticParams), newParams); this.staticParams = buffer; }; pLogger.prototype.log = function (logRecord) { return; }; pLogger.prototype._log = function (message, log_level, staticParams) { var _this = this; if (staticParams === void 0) { staticParams = null; } //taking log based enum if the string message is in the enum keys. var logData = this.enumMessages[message]; var enum_message; if (logData) { enum_message = __assign({}, logData); } else { enum_message = null; } var currentParams; if (staticParams != null) { currentParams = __assign(__assign({}, this.staticParams), staticParams); } else { currentParams = this.staticParams; } var current_log = new log_record_1.logRecord(log_level, this.name, message, this.formatter, currentParams, enum_message, this.timestampGenerator); if ((!this.hideLogPositionForPerformance && this.stackDepth > 0) || logLevel_1.logLevels[log_level].rank <= logLevel_1.logLevels[logLevel_1.logLevel.Error].rank) { current_log.fetchCallStack(this.stackDepth); } if (!this.verify_log_level(this.level, log_level)) { return; } //sending log to each handler. this.handlers.forEach(function (handler) { if (!_this.verify_log_level(handler.getLevel(), log_level)) { return; } handler.log(current_log); }); }; pLogger.prototype.critical = function (message, staticParams) { if (staticParams === void 0) { staticParams = null; } this._log(message, logLevel_1.logLevel.Critical, staticParams); }; pLogger.prototype.error = function (message, staticParams) { if (staticParams === void 0) { staticParams = null; } this._log(message, logLevel_1.logLevel.Error, staticParams); }; pLogger.prototype.info = function (message, staticParams) { if (staticParams === void 0) { staticParams = null; } this._log(message, logLevel_1.logLevel.Info, staticParams); }; pLogger.prototype.debug = function (message, staticParams) { if (staticParams === void 0) { staticParams = null; } this._log(message, logLevel_1.logLevel.Debug, staticParams); }; pLogger.prototype.warn = function (message, staticParams) { if (staticParams === void 0) { staticParams = null; } this._log(message, logLevel_1.logLevel.Warn, staticParams); }; pLogger.prototype.trace = function (message, staticParams) { if (staticParams === void 0) { staticParams = null; } this._log(message, logLevel_1.logLevel.Trace, staticParams); }; return pLogger; }(Logger_1.BaseLogger)); exports.pLogger = pLogger; //# sourceMappingURL=p-logger.js.map