Spaces:
Sleeping
Sleeping
File size: 1,640 Bytes
21011e9 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | const fs = require("fs");
const path = require("path");
const logDir = path.join(__dirname, "logs");
if (!fs.existsSync(logDir)) {
fs.mkdirSync(logDir, { recursive: true });
}
const logFile = path.join(logDir, "combined.log");
const logStream = fs.createWriteStream(logFile, { flags: "a", encoding: "utf8" });
function formatMessage(level, args) {
const timestamp = new Date().toISOString();
const message = args.map((arg) => {
if (arg instanceof Error) {
return arg.stack || arg.message || String(arg);
}
if (typeof arg === "object" && arg !== null) {
try {
return JSON.stringify(arg, null, 2);
} catch (e) {
return String(arg);
}
}
return String(arg);
}).join(" ");
return `[${timestamp}] [${level}] ${message}\n`;
}
// Keep original references
const originalLog = console.log;
const originalError = console.error;
const originalWarn = console.warn;
const originalInfo = console.info;
console.log = function (...args) {
originalLog.apply(console, args);
logStream.write(formatMessage("INFO", args));
};
console.error = function (...args) {
originalError.apply(console, args);
logStream.write(formatMessage("ERROR", args));
};
console.warn = function (...args) {
originalWarn.apply(console, args);
logStream.write(formatMessage("WARN", args));
};
console.info = function (...args) {
originalInfo.apply(console, args);
logStream.write(formatMessage("INFO", args));
};
console.debug = function (...args) {
originalLog.apply(console, ["DEBUG:", ...args]);
logStream.write(formatMessage("DEBUG", args));
};
module.exports = {
logStream,
};
|