fix: api log wrapper 수정

This commit is contained in:
Daseul Kim 2025-06-16 16:03:38 +09:00
parent ed8c6187d3
commit c212ed0ad6
2 changed files with 17 additions and 8 deletions

View File

@ -2,9 +2,20 @@ import { NextRequest, NextResponse } from 'next/server'
import { writeApiLog } from './logger'
export function loggerWrapper(handler: (req: NextRequest) => Promise<NextResponse>): (req: NextRequest) => Promise<NextResponse> {
return async function (request: NextRequest) {
const response = await handler(request)
await writeApiLog(request, response.status)
return async function (req: NextRequest) {
const reqClone = req.clone()
const response = await handler(req)
await writeApiLog(
new NextRequest(req.url, {
method: req.method,
headers: req.headers,
body: reqClone.body ? await reqClone.text() : undefined,
}),
response.status,
)
return response
}
}

View File

@ -4,8 +4,7 @@ import pino from 'pino'
/* 로그 데이터 인터페이스 */
interface ApiLogData {
timestamp: string
status: number
responseStatus: number
method: string
url: string
// headers: { [k: string]: string }
@ -82,13 +81,12 @@ const dailyLogger = new DailyLogger()
/* API 로그 기록 함수 */
export const writeApiLog = async (request: NextRequest, responseStatus: number): Promise<void> => {
const logData: ApiLogData = {
timestamp: new Date().toISOString(),
status: responseStatus,
responseStatus: responseStatus,
method: request.method,
url: request.url,
// headers: Object.fromEntries(request.headers),
query: Object.fromEntries(new URL(request.url).searchParams),
body: request.body ? await request.clone().text() : undefined,
body: request.body ? await request.text() : undefined,
}
dailyLogger.info(logData, 'API Request')
}