fix: api log wrapper 수정
This commit is contained in:
parent
ed8c6187d3
commit
c212ed0ad6
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@ -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')
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user