function createLogger(level) {
	const logger = loggers[level];
	const logFn = /** @type {import('../types/log.d.ts').LogFn} */ (_log.bind(null, logger));
	/** @type {Set<string>} */
	const logged = new Set();
	/** @type {import('../types/log.d.ts').SimpleLogFn} */
	const once = function (message, payload, namespace) {
		if (!logger.enabled || logged.has(message)) {
			return;
		}
		logged.add(message);
		logFn.apply(null, [message, payload, namespace]);
	};
	Object.defineProperty(logFn, 'enabled', {
		get() {
			return logger.enabled;
		}
	});
	Object.defineProperty(logFn, 'once', {
		get() {
			return once;
		}
	});
	return logFn;
}
@param {import('../types/log.d.ts').LogLevel} level
@returns {import('../types/log.d.ts').LogFn}