| import { logger } from "@midday/logger"; | |
| import type { Context, MiddlewareHandler } from "hono"; | |
| export const httpLogger = (): MiddlewareHandler => { | |
| return async (context: Context, next) => { | |
| const start = process.hrtime.bigint(); | |
| const method = context.req.method; | |
| const url = context.req.url; | |
| const path = new URL(url).pathname; | |
| logger.info(`${method} ${path} - incoming request`); | |
| await next(); | |
| const duration = Number(process.hrtime.bigint() - start) / 1000000; // Convert to ms | |
| const statusCode = context.res.status; | |
| logger.info( | |
| `${method} ${path} ${statusCode} - completed in ${duration.toFixed(2)}ms`, | |
| ); | |
| }; | |
| }; | |