From 94aab6dce76e5980882e2b29cd4fe777b987c8eb Mon Sep 17 00:00:00 2001 From: Jose Selesan Date: Fri, 29 May 2026 18:53:34 -0300 Subject: [PATCH] feat(logging): add request logger middleware for improved request tracking --- apps/backend/src/index.ts | 3 +++ apps/backend/src/lib/request-logger.ts | 15 +++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 apps/backend/src/lib/request-logger.ts diff --git a/apps/backend/src/index.ts b/apps/backend/src/index.ts index 0dd8722..2e80e6c 100644 --- a/apps/backend/src/index.ts +++ b/apps/backend/src/index.ts @@ -2,6 +2,7 @@ import { Hono } from "hono"; import { serveStatic } from "hono/bun"; import { auth } from "./lib/auth"; import { authMiddleware } from "./lib/auth-middleware"; +import { requestLogger } from "./lib/request-logger"; import { startQuoteJob } from "./modules/quotes/quote.job"; import quotesRouter from "./modules/quotes/quotes.routes"; import expensesRouter from "./modules/expenses/expenses.routes"; @@ -10,6 +11,8 @@ import { logger } from "./lib/logger"; const app = new Hono(); +app.use("*", requestLogger); + app.get("/api/health", (c) => { return c.json({ status: "ok", timestamp: new Date().toISOString() }); }); diff --git a/apps/backend/src/lib/request-logger.ts b/apps/backend/src/lib/request-logger.ts new file mode 100644 index 0000000..12d38e1 --- /dev/null +++ b/apps/backend/src/lib/request-logger.ts @@ -0,0 +1,15 @@ +import type { Context, Next } from "hono"; +import { logger } from "./logger"; + +export async function requestLogger(c: Context, next: Next) { + const start = performance.now(); + const method = c.req.method; + const path = c.req.path; + + logger.info(`→ ${method} ${path}`); + + await next(); + + const duration = (performance.now() - start).toFixed(2); + logger.info(`← ${method} ${path} ${duration}ms`); +}