@ngxp/log
Version:
52 lines • 2.5 kB
JavaScript
"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