middleware.ts•1.06 kB
import { NextResponse } from "next/server";
import type { NextRequest } from "next/server";
import { Logger } from "./lib/logger";
export function middleware(request: NextRequest) {
const startTime = Date.now();
// Log the request (status and duration are approximate in middleware)
const logData = {
timestamp: new Date().toISOString(),
method: request.method,
path: request.nextUrl.pathname,
statusCode: 0, // Status not available in middleware
duration: 0, // Duration captured at middleware entry
userAgent: request.headers.get("user-agent") || undefined,
ip: request.headers.get("x-forwarded-for") || request.headers.get("x-real-ip") || undefined,
};
Logger.logRequest(logData);
return NextResponse.next();
}
export const config = {
matcher: [
/*
* Match all request paths except for the ones starting with:
* - _next/static (static files)
* - _next/image (image optimization files)
* - favicon.ico (favicon file)
*/
"/((?!_next/static|_next/image|favicon.ico).*)",
],
};