From 1676f646604b52bf0d4ec76abdd41edcf6c9d203 Mon Sep 17 00:00:00 2001 From: Mateen Date: Wed, 4 Feb 2026 12:44:34 +0530 Subject: [PATCH] feat: add reusable logging utility with reuestId support --- demo.js | 11 +++++++++++ utils/logger.js | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 demo.js create mode 100644 utils/logger.js diff --git a/demo.js b/demo.js new file mode 100644 index 0000000..bb8ea68 --- /dev/null +++ b/demo.js @@ -0,0 +1,11 @@ +const { generateRequestId, logInfo, logError } = require("./utils/logger"); + +const requestId = generateRequestId(); + +logInfo("Demo request started", { requestId }); + +try { + throw new Error("Something went wrong"); +} catch (err) { + logError(err.message, { requestId }); +} diff --git a/utils/logger.js b/utils/logger.js new file mode 100644 index 0000000..a7edac2 --- /dev/null +++ b/utils/logger.js @@ -0,0 +1,36 @@ +/** + * Centralized Logger Utility + * Can be reused across backend or frontend projects + */ + +function generateRequestId() { + return `req-${Date.now()}-${Math.floor(Math.random() * 1000)}`; +} + +function logInfo(message, meta = {}) { + console.log( + JSON.stringify({ + level: "INFO", + timestamp: new Date().toISOString(), + message, + ...meta, + }) + ); +} + +function logError(message, meta = {}) { + console.error( + JSON.stringify({ + level: "ERROR", + timestamp: new Date().toISOString(), + message, + ...meta, + }) + ); +} + +module.exports = { + generateRequestId, + logInfo, + logError, +};