getLogger(bindings) {
		let logger = this.cache.get(this.getBindingsKey(bindings));
		if (logger) return logger;

		logger = {};
		const broker = this.broker;
		const appenders = this.appenders;

		const logHandlers = _.compact(appenders.map(app => app.getLogHandler(bindings)));
		const hasNewLogEntryMiddleware =
			broker.middlewares && broker.middlewares.registeredHooks.newLogEntry;

		Loggers.LEVELS.forEach(type => {
			if (logHandlers.length == 0 && !hasNewLogEntryMiddleware) return (logger[type] = noop);

			logger[type] = function (...args) {
				if (hasNewLogEntryMiddleware)
					broker.middlewares.callSyncHandlers("newLogEntry", [type, args, bindings], {});

				if (logHandlers.length == 0) return;

				for (let i = 0; i < logHandlers.length; i++) logHandlers[i](type, args);
			};
		});

		/*logger.log = function(type, ...args) {
			if (broker.middlewares)
				broker.middlewares.callSyncHandlers("newLogEntry", [type, args, bindings], {});

			if (logHandlers.length == 0) return;

			logHandlers.forEach(fn => fn(type, args));
		};*/

		logger.appenders = appenders;

		this.cache.set(this.getBindingsKey(bindings), logger);

		return logger;
	}
Get a logger for a module (service, transporter, cacher, context...etc)

@param {Object} bindings
@returns {ModuleLogger}

@memberof ServiceBroker