function _log(logger, message, payload, namespace) {
	if (!logger.enabled) {
		return;
	}
	if (logger.isDebug) {
		let log = logger.log;
		if (namespace) {
			if (!isDebugNamespaceEnabled(namespace)) {
				return;
			}
			log = logger.log.extend(namespace);
		}
		if (payload !== undefined) {
			log(message, payload);
		} else {
			log(message);
		}
	} else {
		logger.log(
			logger.color(
				`${new Date().toLocaleTimeString()} [${prefix}${
					namespace ? `:${namespace}` : ''
				}] ${message}`
			)
		);
		if (payload) {
			logger.log(payload);
		}
	}
}
@param {any} logger
@param {string} message
@param {any} [payload]
@param {string} [namespace]
@returns