Files
PicHost/server/plugins/request-log.ts
T
O96u bc4cba7e52 release: PicHost v1.0.0
Multi-user image hosting with RBAC, upload preferences, and admin settings.
2026-08-22 14:36:57 +08:00

30 lines
825 B
TypeScript

import { clientIp, logInfo } from '../utils/logger'
/**
* 只记录 /api/*,避免 /images、/twikoo 直链刷屏。
*/
export default defineNitroPlugin((nitroApp) => {
nitroApp.hooks.hook('request', (event) => {
event.context._reqStartedAt = Date.now()
})
nitroApp.hooks.hook('afterResponse', (event) => {
const path = getRequestURL(event).pathname
if (!path.startsWith('/api/')) return
// 高频探测接口降噪
if (path === '/api/auth/me' || path === '/api/auth/config') return
const method = getMethod(event)
const status = getResponseStatus(event)
const started = event.context._reqStartedAt as number | undefined
const ms = started ? Date.now() - started : undefined
logInfo(`${method} ${path}`, {
status,
ms,
ip: clientIp(event)
})
})
})