@tencentcloud/roomkit-web-vue3
Version:
<h1 align="center"> TUIRoomKit</h1> Conference (TUIRoomKit) is a product suitable for multi-person audio and video conversation scenarios such as business meetings, webinars, and online education. By integrating this product, you can add room management,
69 lines (64 loc) • 1.86 kB
text/typescript
/*
* @Description: logger
* @Date: 2022-04-11 19:39:55
* @LastEditTime: 2022-04-12 11:37:24
*/
import { EUserEventNames } from './logger-constants';
import { LogLevelType, LogContext, getLogPrefix } from './logger-utils';
let currentLogLevel = LogLevelType.LOG_LEVEL_DEBUG;
const logger = {
debug(...args: any[]) {
if (currentLogLevel <= LogLevelType.LOG_LEVEL_DEBUG) {
console.debug(`${getLogPrefix(LogContext.RENDER)}`, ...args);
}
},
log(...args: any[]) {
if (currentLogLevel <= LogLevelType.LOG_LEVEL_LOG) {
console.log(`${getLogPrefix(LogContext.RENDER)}`, ...args);
}
},
info(...args: any[]) {
if (currentLogLevel <= LogLevelType.LOG_LEVEL_INFO) {
console.info(`${getLogPrefix(LogContext.RENDER)}`, ...args);
}
},
warn(...args: any[]) {
if (currentLogLevel <= LogLevelType.LOG_LEVEL_WARN) {
console.warn(`${getLogPrefix(LogContext.RENDER)}`, ...args);
}
},
error(...args: any[]) {
if (currentLogLevel <= LogLevelType.LOG_LEVEL_ERROR) {
console.error(`${getLogPrefix(LogContext.RENDER)}`, ...args);
}
},
setLevel(newLevel: number) {
if (
newLevel >= LogLevelType.LOG_LEVEL_DEBUG &&
newLevel <= LogLevelType.LOG_LEVEL_NON_LOGGING
) {
console.log(
`${getLogPrefix(
LogContext.RENDER
)} set log level from ${currentLogLevel} to ${newLevel}`
);
currentLogLevel = newLevel;
if ((window as any).electron?.ipcRenderer) {
(window as any).electron.ipcRenderer.send(
EUserEventNames.ON_CHANGE_LOG_LEVEL,
newLevel
);
}
} else {
console.error(
`${getLogPrefix(
LogContext.RENDER
)} logger.setLevel() invalid params:${newLevel}`
);
}
},
getLevel() {
return currentLogLevel;
},
};
export default logger;