UNPKG

yirtc-sdk-web

Version:

基于WebRTC的实时音视频SDK

114 lines (113 loc) 3.3 kB
/** * 日志记录器类 */ import { LogLevel } from '../types'; export class Logger { /** * 创建日志记录器实例 * @param tag 日志标签 */ constructor(tag) { this.tag = tag; } /** * 设置全局日志级别 * @param level 日志级别 */ static setLogLevel(level) { Logger.globalLogLevel = level; } /** * 启用日志上传 * @param appKey 应用密钥 */ static enableLogUpload(appKey) { Logger.logUploadEnabled = true; Logger.appKey = appKey; console.log('[Logger] 日志上传已启用'); } /** * 禁用日志上传 */ static disableLogUpload() { Logger.logUploadEnabled = false; console.log('[Logger] 日志上传已禁用'); } /** * 记录调试日志 * @param message 日志消息 * @param data 日志数据 */ debug(message, data) { if (this._shouldLog(LogLevel.DEBUG)) { console.debug(`[${this.tag}] ${message}`, data !== undefined ? data : ''); this._uploadLog('debug', message, data); } } /** * 记录信息日志 * @param message 日志消息 * @param data 日志数据 */ info(message, data) { if (this._shouldLog(LogLevel.INFO)) { console.info(`[${this.tag}] ${message}`, data !== undefined ? data : ''); this._uploadLog('info', message, data); } } /** * 记录警告日志 * @param message 日志消息 * @param data 日志数据 */ warn(message, data) { if (this._shouldLog(LogLevel.WARN)) { console.warn(`[${this.tag}] ${message}`, data !== undefined ? data : ''); this._uploadLog('warn', message, data); } } /** * 记录错误日志 * @param message 日志消息 * @param data 日志数据 */ error(message, data) { if (this._shouldLog(LogLevel.ERROR)) { console.error(`[${this.tag}] ${message}`, data !== undefined ? data : ''); this._uploadLog('error', message, data); } } /** * 判断是否应该记录日志 * @param level 日志级别 * @returns boolean */ _shouldLog(level) { const levels = { [LogLevel.DEBUG]: 0, [LogLevel.INFO]: 1, [LogLevel.WARN]: 2, [LogLevel.ERROR]: 3, [LogLevel.NONE]: 4 }; return levels[level] >= levels[Logger.globalLogLevel]; } /** * 上传日志 * @param level 日志级别 * @param message 日志消息 * @param data 日志数据 */ _uploadLog(level, message, data) { if (!Logger.logUploadEnabled || !Logger.appKey) return; // 在实际应用中,这里应该将日志发送到服务器 // 简化版中,我们只打印一条消息表示日志已上传 if (this._shouldLog(LogLevel.DEBUG)) { console.debug(`[Logger] 日志已上传: ${level} - ${message}`); } } } Logger.globalLogLevel = LogLevel.INFO; Logger.logUploadEnabled = false; Logger.appKey = '';