bigbluebutton-Github/bigbluebutton-html5/imports/ui/components/chat/chat-logger/ChatLogger.js

38 lines
681 B
JavaScript
Raw Normal View History

class ChatLogger {
constructor() {
this.logLevel = 'info';
this.levels = Object.freeze({
error: 1,
info: 2,
debug: 3,
trace: 4,
});
Object.keys(this.levels).forEach((i) => {
this[i] = this.logger.bind(this, i);
});
}
setLogLevel(level) {
if (this.levels[level]) {
this.logLevel = level;
} else {
throw new Error('This Level not exist');
}
}
getLogLevel() {
return this.logLevel;
}
logger(level, ...text) {
const logLevel = this.levels[level];
if (this.levels[this.logLevel] >= logLevel) {
console.log(`${level}:`, ...text);
}
}
}
export default new ChatLogger();