const logger = require('riotclient-debug')
const PLUGIN_NAME = 'rcp-fe-block-list-settings';
const LOGGERS = new Map();
function getLoggerInstance(namespace, rootNamespace = PLUGIN_NAME) {
let subNamespace = ('' !== namespace ? `:${namespace}` : '');
let topNamespace = `${rootNamespace}${subNamespace}`;
const api = {
// FIXME use enum
log(...args) { logMessageAtLevel(topNamespace, 'info', ...args) },
info(...args) { logMessageAtLevel(topNamespace, 'info', ...args) },
warn(...args) { logMessageAtLevel(topNamespace, 'warn', ...args) },
error(...args) { logMessageAtLevel(topNamespace, 'error', ...args) },
debug(...args) { logMessageAtLevel(topNamespace, 'debug', ...args) }
};
return api;
}
function logMessageAtLevel(fullNamespace, level, ...args) {
// FIXME thread safety?
let l = LOGGERS[fullNamespace];
Eif (!l) {
// Create new logger with this namespace
l = logger(fullNamespace);
// Bind to browser logging levels
l.log = logger.consoleWrap(level);
// Save new logger
LOGGERS.set(fullNamespace, l);
}
l(args);
}
export default getLoggerInstance
|