@ts-ioc/logs
Version:
tsioc is AOP, Ioc container, via typescript decorator
88 lines (86 loc) • 3.09 kB
JavaScript
"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