From 67e33506939882253dd01bc07e089d720acc095a Mon Sep 17 00:00:00 2001 From: mantrakp04 Date: Fri, 10 Jul 2026 19:01:13 -0700 Subject: [PATCH] Enhance request logging in development mode Added functionality to log request timings in development mode. Introduced a WeakMap to track request start times and log the elapsed time along with the request method, pathname, and response status after each request. This improves observability during development. --- apps/backend/src/server/app.ts | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/apps/backend/src/server/app.ts b/apps/backend/src/server/app.ts index 470e7f934..6c8be7203 100644 --- a/apps/backend/src/server/app.ts +++ b/apps/backend/src/server/app.ts @@ -18,10 +18,27 @@ const globalSecurityHeaders = { "Content-Security-Policy": "", }; const knownHttpMethods = new Set(httpMethodNames); +const developmentRequestStartTimes = new WeakMap(); +const shouldLogDevelopmentRequests = getNodeEnvironment() === "development"; export const app = new Elysia({ adapter: node(), }) + .onRequest(({ request }) => { + if (shouldLogDevelopmentRequests) { + developmentRequestStartTimes.set(request, performance.now()); + } + }) + .onAfterResponse(({ request, set }) => { + if (!shouldLogDevelopmentRequests) { + return; + } + + const startTime = developmentRequestStartTimes.get(request); + const elapsedMilliseconds = startTime == null ? "unknown" : (performance.now() - startTime).toFixed(1); + const pathname = new URL(request.url).pathname; + console.log(`[Elysia] ${request.method} ${pathname} ${set.status} ${elapsedMilliseconds}ms`); + }) .get("/", () => htmlResponse(homeHtml())) .get("/dev-stats", () => htmlResponse(devStatsHtml())) .get("/health/error-handler-debug", () => htmlResponse(errorHandlerDebugHtml()))