diff --git a/frontend/tools/logger.ts b/frontend/tools/logger.ts index e4e45eb..a010151 100644 --- a/frontend/tools/logger.ts +++ b/frontend/tools/logger.ts @@ -1,91 +1,31 @@ import fs from "fs/promises"; -type LogType = { - title: string; - status?: "success" | "error" | "info" | "warning"; - message?: string, - details?: any -} - class Logger { - private static formatToMarkdown(log: LogType) { - const date = new Date(); - let month = "" + (date.getMonth() + 1); - let day = "" + date.getDate(); - let year = date.getFullYear(); - let hour = date.getHours(); - let minutes = date.getMinutes(); - let seconds = date.getSeconds(); - - if (month.length < 2) { - month = "0" + month; - } - - if (day.length < 2) { - day = "0" + day; - } - - let markdownContent = ""; - - let icon = "ℹ️"; - - switch (log.status) { - case "info": - icon = "ℹ️"; - break; - case "error": - icon = "‼️"; - break; - case "warning": - icon = "⚠️"; - break; - case "success": - icon = "✅"; - break; - default : - icon = "ℹ️"; - break; - } - - markdownContent += `## ${icon} ${log.title} \n`; - // markdownContent += `## ${[year, month, day].join("-")} ${hour}:${minutes}:${seconds} \n`; - markdownContent += `## ${hour} : ${minutes} : ${seconds} \n`; - - if (log.message) { - markdownContent += `**Message:**\n ${log.message}\n\n`; - } - if (log.details) { - markdownContent += `**Details:**\n\n\`\`\`json\n${JSON.stringify(log.details, null, 2)}\n\`\`\`\n\n`; - } - - markdownContent += "

\n\n"; - markdownContent += "---\n"; - - return markdownContent; - } - - public static async log(info: LogType) { - const formattedLog = this.formatToMarkdown(info); - - try { - await fs.appendFile(".logs/log.md", formattedLog); - } catch (e) { - console.error(e); - } - } - public static async axiosErrorLog(error: any) { + const errorJson = error.toJSON(); - const logData : LogType = { - title : error?.message, - message : `${error?.config?.method?.toUpperCase()} ${error?.config?.url}`, - details : error, - } + const nowDate = new Date(); - const formattedLog = this.formatToMarkdown(logData); + const logData: AxiosLogType = { + url: errorJson.config.url, + code: errorJson.code!, + status: errorJson.status!, + method: errorJson.config.method, + response: error?.response?.data, + requestHeaders: errorJson.config.headers, + responseHeaders: error.response.headers, + payload: errorJson.config.data ? JSON.parse(errorJson.config.data) : undefined, + params: errorJson.config.params ?? undefined, + date: nowDate.toString() + }; try { - await fs.appendFile(".logs/log.md", formattedLog); + const oldLogs = await fs.readFile(".logs/log.json", "utf-8"); + const oldLogsJson = JSON.parse(oldLogs) as Record[]; + + oldLogsJson.push(logData); + + await fs.writeFile(".logs/log.json", JSON.stringify(oldLogsJson)); } catch (e) { console.error(e); }