import fs from 'fs'; import moment from "moment"; // const shortenStringsInObject = (obj, maxLength) => { // // Kiểm tra nếu obj không phải là một đối tượng hoặc maxLength không phải là một số // if (typeof obj !== 'object' || typeof maxLength !== 'number') { // return obj; // } // // Duyệt qua các thuộc tính của đối tượng // for (const key in obj) { // if (obj.hasOwnProperty(key)) { // // Kiểm tra nếu thuộc tính là một chuỗi và độ dài của chuỗi lớn hơn maxLength // if (typeof obj[key] === 'string' && obj[key].length > maxLength) { // // Rút ngắn chuỗi lại maxLength ký tự // obj[key] = obj[key].substring(0, maxLength); // } // } // } // if (Array.isArray(obj) && obj.length > 10) { // // Rút ngắn chuỗi lại maxLength ký tự // obj = "[Array:"+obj.length+"]\n"+obj.slice(0,15) // } // return obj; // } export function loggerAPI(req, res, location) { let old_data = ""; let resBody = res.getBody() // let body = shortenStringsInObject(resBody, 300) try { const fileName = "./app/store/logsAPI/" + moment(Date.now()).format("DD_MM_YYYY").toString() + ".log"; let logInfo = "\n\n[" + moment(Date.now()).format("D/M/YY-HH:mm:ss") + "] - " + res.getStatus() + " - " + location + "\n------PAYLOAD------\n" + JSON.stringify(req.all(), null, 2) + "\n------PARAMS-------\n" + JSON.stringify(req.params(), null, 2) + "\n-----RESPONSE------\n" + JSON.stringify(resBody, null, 2) + "\n------HEADERS------\n" + JSON.stringify(req.headers(), null, 2) + "\n\n======================================================================"; fs.exists(fileName, async (exists) => { if (exists) { old_data = await fs.readFileSync(fileName, "utf8"); fs.writeFileSync(fileName, old_data + logInfo); } else { fs.writeFileSync(fileName, old_data + logInfo); } }); } catch (error) { res.status(500).send("CAN'T WRITE LOG"); } }