diff --git a/src/middleware/loggingMiddleware.ts b/src/middleware/loggingMiddleware.ts index d22c4a63..761f1ac6 100644 --- a/src/middleware/loggingMiddleware.ts +++ b/src/middleware/loggingMiddleware.ts @@ -1,8 +1,24 @@ import { NextRequest, NextResponse } from 'next/server'; +const LOG_LEVELS = ["debug", "info", "warn", "error"] as const; +type LogLevel = typeof LOG_LEVELS[number]; + +function currentLevelIndex(): number { + const raw = (process.env.LOG_LEVEL ?? "info") as LogLevel; + const idx = LOG_LEVELS.indexOf(raw); + return idx === -1 ? 1 : idx; +} + +const STATUS_PATH_RE = /\/api\/agent\/[^/]+\/status\/?$/; + export function loggingMiddleware(request: NextRequest) { if (request.url.includes('/api')) { - console.log(`[API] Received ${request.method} request : ${request.url} at ${new Date()}`); + const isStatusPing = STATUS_PATH_RE.test(request.nextUrl.pathname); + // Status pings are debug-level; all other API calls are info-level. + const requiredIndex = isStatusPing ? 0 : 1; + if (currentLevelIndex() <= requiredIndex) { + console.log(`[API] Received ${request.method} request : ${request.url} at ${new Date()}`); + } } return NextResponse.next(); } \ No newline at end of file