const level_list = ["DEBUG", "INFO", "WARNING", "ERROR"]; const file_path = "log" class JadeLogging { constructor(app_name, level = "DEBUG") { this.app_name = app_name this.level = level this.level_index = level_list.indexOf(level) } format(level, message) { let max_format = 80 switch (level) { case "INFO": max_format = max_format + 1 break case "WARNING": max_format = max_format - 2 break default : break } if (message.length < max_format) { if ((max_format - message.length) % 2 === 0) { message = "#".repeat(Math.floor((max_format - message.length) / 2)) + message + "#".repeat(Math.floor((max_format - message.length) / 2)) } else { message = "#".repeat(Math.floor((max_format - message.length) / 2)) + message + "#".repeat(Math.floor((max_format - message.length) / 2) + 1) } } return message } getTime() { const timestamp = new Date(); // 获取当前时间戳 return timestamp.toLocaleDateString().replace(/\//g, "-") + " " + timestamp.toTimeString().substr(0, 8) + "," + timestamp.getMilliseconds().toString() } formatMessage(log_level, message, is_format) { // 获取北京时间 // 格式化消息 //2023-12-13 15:15:21,409 - 阿里玩偶 - //2023-12-14T01:43:31.278Z //2023-12-13 15:15:21,409 - 阿里玩偶 - INFO: //2023-12-13 15:15:21,409 - 阿里玩偶 - ERROR: if (is_format) { message = this.format(log_level, message) } return `${this.getTime()} - ${this.app_name} - ${log_level}: ${message}` } async log(message) { console.debug(message) await local.set(file_path,this.getTime(), message); } async info(message, is_format=false) { if (this.level_index <= 1) { await this.log(this.formatMessage("INFO", message, is_format)) } } async warning(message, is_format=false) { if (this.level_index <= 2) { await this.log(this.formatMessage("WARNING", message, is_format)) } } async error(message, is_format=false) { if (this.level_index <= 3) { await this.log(this.formatMessage("ERROR", message, is_format)) } } async debug(message, is_format=false) { if (this.level_index <= 0) { await this.log(this.formatMessage("DEBUG", message, is_format)) } } } // 测试日志记录函数 export {JadeLogging}