UNPKG

@ts-ioc/logs

Version:

tsioc is AOP, Ioc container, via typescript decorator

88 lines (86 loc) 3.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const core_1 = require("@ts-ioc/core"); const ILoggerManager_1 = require("./ILoggerManager"); const LogConfigure_1 = require("./LogConfigure"); const IConfigureLoggerManager_1 = require("./IConfigureLoggerManager"); const aop_1 = require("@ts-ioc/aop"); /** * Configure logger manger. use to get configed logger manger. * * @export * @class LoggerManger * @implements {IConfigureLoggerManager} */ let ConfigureLoggerManger = class ConfigureLoggerManger { constructor(container, config) { this.container = container; this.setLogConfigure(config); } get config() { 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; } setLogConfigure(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; } get logManger() { if (!this._logManger) { let cfg = this.config || {}; let adapter = cfg.adapter || 'console'; let token; 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; } configure(config) { this.logManger.configure(config); } getLogger(name) { return this.logManger.getLogger(name); } static getClassAnnations() { 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); exports.ConfigureLoggerManger = ConfigureLoggerManger; //# sourceMappingURL=sourcemaps/ConfigureLoggerManger.js.map