const config = require("./config-handler"); const fs = require("fs"); function log(date, req, ip, res) { const requestBody = !req.byteBody.toString("utf-8") ? "" : ` ~~~~~~~~~~~~~~ [REQUEST BODY] ~~~~~~~~~~~~~~ ${req.byteBody.toString("utf-8")}`; let action = `HTTP ${req.httpVersion} ${req.method} ${req.originalUrl} ~~~~~~~~~ [HEADERS] ~~~~~~~~~ ${Object.entries(req.headers) .map(([header, value]) => header + ": " + value) .join("\n")}${requestBody}`; let response = !res.isError ? "" : `\n----------------\nError raised:\n----------------\n${JSON.stringify( res.responseData, )}`; //console.log(`================================\nREPORT\n================================\n\nIP: ${ip}\n----------------\nACTION:\n----------------\n${action}${response}`); let loggerFolder = config().logger_folder; loggerFolder = !["/", "\\"].includes(loggerFolder.at(-1)) ? loggerFolder + "/" : loggerFolder; fs.writeFileSync( `${loggerFolder}${date.getTime()}.log`, `================================\nREPORT\n================================\n\nIP: ${ip}\n----------------\nACTION:\n----------------\n${action}${response}`, ); } module.exports = async (req, res, next) => { // console.log('ip', req.ip); log(new Date(), req, req.ip, res); next(); };