UNPKG

@ngxp/log

Version:
52 lines 2.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var lodash_es_1 = require("lodash-es"); var operators_1 = require("rxjs/operators"); var appender_1 = require("../appender"); var date_1 = require("../date"); var log_level_1 = require("../log-level"); var ManagedLogger = /** @class */ (function () { function ManagedLogger(name, parent, logManager) { var _this = this; this.name = name; this.parent = parent; this.logManager = logManager; this.logLevel = log_level_1.LogLevel.Log; this.appenderSubscriptions = new appender_1.AppenderSubscriptionManager(); var createLogFn = createLogFnFactory(this.name, function (logMessage) { return _this.logManager.publishLogMessage(logMessage); }); this.error = createLogFn(log_level_1.LogLevel.Error); this.warn = createLogFn(log_level_1.LogLevel.Warn); this.log = createLogFn(log_level_1.LogLevel.Log); this.info = createLogFn(log_level_1.LogLevel.Info); this.debug = createLogFn(log_level_1.LogLevel.Debug); this.trace = createLogFn(log_level_1.LogLevel.Trace); } ManagedLogger.prototype.getLogger = function (simpleName) { return this.logManager.getOrCreateLogger(simpleName, this); }; ManagedLogger.prototype.setLogLevel = function (logLevel) { this.logLevel = logLevel; return this; }; ManagedLogger.prototype.registerAppender = function (appender) { var _this = this; var subscription = this.logManager.logMessage$.pipe(operators_1.filter(function (logMessage) { return lodash_es_1.startsWith(logMessage.loggerName, _this.name); }), operators_1.filter(function (logMessage) { return log_level_1.isEqualOrHigher(_this.logLevel, logMessage.level); })) .subscribe(function (message) { return appender.onPublishLogMessage(message); }); this.appenderSubscriptions.add(appender, subscription); return this; }; ManagedLogger.prototype.unregisterAppender = function (appender) { this.appenderSubscriptions.remove(appender); }; return ManagedLogger; }()); exports.ManagedLogger = ManagedLogger; function createLogFnFactory(name, publishLogMessage) { return function (level) { return function (message) { return publishLogMessage({ loggerName: name, timestamp: date_1.getTimestamp(), level: level, message: message }); }; }; } //# sourceMappingURL=managed-logger.js.map