mirror of
https://github.com/stack-auth/stack.git
synced 2026-07-20 21:29:36 +08:00
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.
This commit is contained in:
parent
06e3a6afa9
commit
67e3350693
@ -18,10 +18,27 @@ const globalSecurityHeaders = {
|
||||
"Content-Security-Policy": "",
|
||||
};
|
||||
const knownHttpMethods = new Set<string>(httpMethodNames);
|
||||
const developmentRequestStartTimes = new WeakMap<Request, number>();
|
||||
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()))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user