Skip to content

Instantly share code, notes, and snippets.

@Rockheung
Created December 20, 2023 08:50
Show Gist options
  • Save Rockheung/1259c7a21a493f1f1c2f87d75507be20 to your computer and use it in GitHub Desktop.
Save Rockheung/1259c7a21a493f1f1c2f87d75507be20 to your computer and use it in GitHub Desktop.
#!/usr/bin/env node
// simple console logger - drop some file and stdout
const fs = require("fs");
const path = require("path");
const http = require("http");
const time = new Date().getTime();
const logFilePath = path.join(__dirname, `log-${time}.txt`);
let logFile = fs.createWriteStream(logFilePath, {flags: "a"});
function log (req, res) {
const timeStr = new Date().toLocaleString();
const buf = [];
if (!fs.existsSync(logFilePath)) {
logFile.end();
logFile = fs.createWriteStream(logFilePath, {flags: "a"});
}
req.on("data", (chunk) => buf.push(chunk));
req.on("end", () => {
const logTxT = Buffer.concat(buf).toString().replaceAll(/(?<==>)\n *(?![^ ])/g,"");
logFile.write(timeStr + "\n" + logTxT + "\n\n");
console.log(timeStr, logTxT);
res.setHeader("Access-Control-Allow-Origin", "*");
res.end();
})
}
process.on("uncaughtException", (err) => {
logFile.write(err.toString());
logFile.end();
console.log(err);
});
const server = http.createServer(log);
const port = process.env.PORT || 3000;
server.listen(port, () => {
console.log("Server running at http://localhost:" + port + "/");
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment