// time.js (假设 getDateTime 函数在这个文件中) function getDateTime() { const date = new Date(); const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, '0'); const day = String(date.getDate()).padStart(2, '0'); const hour = String(date.getHours()).padStart(2, '0'); const minute = String(date.getMinutes()).padStart(2, '0'); const second = String(date.getSeconds()).padStart(2, '0'); const ms = String(date.getMilliseconds()).padStart(3, '0'); return `${year}-${month}-${day} ${hour}:${minute}:${second}:${ms}`; } // StaticLogger 类,用于在浏览器控制台中打印格式化的日志 class StaticLogger { // 静态属性,用于控制日志是否启用 static enabled = true; // 静态方法,用于格式化日志消息 // tag: 日志标签,message: 日志内容 static formatMessage(tag, message) { // 获取当前时间戳 const timeStamp = getDateTime(); // 使用 %c 占位符为时间戳添加蓝色样式 const coloredTimeStamp = `[${timeStamp}]`; // 使用 %c 占位符为标签添加黄色样式 const coloredTag = `🚀 [${tag}]`; // 如果有消息内容,则返回格式化后的完整日志 if (message) { return `${coloredTag} ${coloredTimeStamp} ${message}`; } else { // 如果没有消息内容,则只返回时间戳和标签 return `${coloredTimeStamp} ${coloredTag}`; } } // 静态方法,用于打印普通日志 static log(tag, message) { // 检查日志是否启用 if (this.enabled) { // 如果消息是一个对象,则直接打印对象 if (message instanceof Object) { console.log(this.formatMessage(tag), message); } else { // 否则,打印格式化后的日志,并应用样式 console.log(this.formatMessage(tag, message)); } } } // 静态方法,用于打印信息日志 static info(tag, message) { if (this.enabled) { if (message instanceof Object) { console.info(this.formatMessage(tag), message); } else { console.info(this.formatMessage(tag, message)); } } } // 静态方法,用于打印警告日志 static warn(tag, message) { if (this.enabled) { if (message instanceof Object) { console.warn(this.formatMessage(tag), message); } else { console.warn(this.formatMessage(tag, message)); } } } // 静态方法,用于打印错误日志 static error(tag, message) { if (this.enabled) { if (message instanceof Object) { console.error(this.formatMessage(tag), message); } else { console.error(this.formatMessage(tag, message)); } } } // 静态方法,用于启用或禁用日志 static setEnabled(enabled) { this.enabled = enabled; } } // 将 StaticLogger 类暴露到全局作用域,以便在 HTML 中直接使用 window.StaticLogger = StaticLogger;