@ts-ioc/logs
Version:
tsioc is AOP, Ioc container, via typescript decorator
97 lines (95 loc) • 3.72 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var core_1 = require("@ts-ioc/core");
var ILoggerManager_1 = require("./ILoggerManager");
var LogConfigure_1 = require("./LogConfigure");
var IConfigureLoggerManager_1 = require("./IConfigureLoggerManager");
var aop_1 = require("@ts-ioc/aop");
/**
* Configure logger manger. use to get configed logger manger.
*
* @export
* @class LoggerManger
* @implements {IConfigureLoggerManager}
*/
var ConfigureLoggerManger = /** @class */ (function () {
function ConfigureLoggerManger(container, config) {
this.container = container;
this.setLogConfigure(config);
}
Object.defineProperty(ConfigureLoggerManger.prototype, "config", {
get: function () {
if (!this._config) {
if (this.container.has(LogConfigure_1.LogConfigureToken)) {
this._config = this.container.resolve(LogConfigure_1.LogConfigureToken);
}
else {
this._config = { adapter: 'console' };
}
}
return this._config;
},
enumerable: true,
configurable: true
});
ConfigureLoggerManger.prototype.setLogConfigure = function (config) {
if (!config) {
return;
}
if (core_1.isClass(config)) {
if (!this.container.has(LogConfigure_1.LogConfigureToken)) {
this.container.register(LogConfigure_1.LogConfigureToken, config);
this._config = this.container.get(LogConfigure_1.LogConfigureToken);
}
else if (!this.container.has(config)) {
this.container.register(config);
this._config = this.container.get(config);
}
}
else {
this._config = config;
}
this._logManger = null;
};
Object.defineProperty(ConfigureLoggerManger.prototype, "logManger", {
get: function () {
if (!this._logManger) {
var cfg = this.config || {};
var adapter = cfg.adapter || 'console';
var token = void 0;
if (core_1.isString(adapter)) {
token = new core_1.Registration(ILoggerManager_1.LoggerManagerToken, adapter);
}
else {
token = adapter;
}
this._logManger = this.container.get(token);
if (cfg.config) {
this._logManger.configure(cfg.config);
}
}
return this._logManger;
},
enumerable: true,
configurable: true
});
ConfigureLoggerManger.prototype.configure = function (config) {
this.logManger.configure(config);
};
ConfigureLoggerManger.prototype.getLogger = function (name) {
return this.logManger.getLogger(name);
};
ConfigureLoggerManger.getClassAnnations = function () {
return { "name": "ConfigureLoggerManger", "params": { "constructor": ["container", "config"], "setLogConfigure": ["config"], "configure": ["config"], "getLogger": ["name"] } };
};
ConfigureLoggerManger = tslib_1.__decorate([
aop_1.NonePointcut(),
core_1.Injectable(IConfigureLoggerManager_1.ConfigureLoggerManagerToken),
tslib_1.__param(0, core_1.Inject(core_1.ContainerToken)),
tslib_1.__metadata("design:paramtypes", [Object, Object])
], ConfigureLoggerManger);
return ConfigureLoggerManger;
}());
exports.ConfigureLoggerManger = ConfigureLoggerManger;
//# sourceMappingURL=sourcemaps/ConfigureLoggerManger.js.map