Request Logger 中间件
功能完整的请求日志中间件,支持自定义格式和多种输出方式。
安装
bash
npm install @vafast/request-logger使用
typescript
import { Server, defineRoute, defineRoutes } from 'vafast'
import { requestLogger } from '@vafast/request-logger'
const routes = defineRoutes([
defineRoute({
method: 'GET',
path: '/',
handler: () => 'Hello World'
})
])
const server = new Server(routes)
server.useGlobalMiddleware(requestLogger())
export default { fetch: server.fetch }配置项
typescript
requestLogger({
// 日志级别
level: 'info',
// 是否记录请求体
logBody: false,
// 是否记录响应体
logResponse: false,
// 敏感字段过滤
redact: ['password', 'token', 'authorization'],
// 自定义日志器
logger: console
})level
日志级别:'debug', 'info', 'warn', 'error'
logBody
是否记录请求体。默认 false(出于隐私和性能考虑)。
logResponse
是否记录响应体。默认 false。
redact
需要脱敏的字段列表。匹配的字段值会被替换为 [REDACTED]。
logger
自定义日志器,默认使用 console。
与 Pino 集成
typescript
import pino from 'pino'
import { requestLogger } from '@vafast/request-logger'
const pinoLogger = pino({
transport: {
target: 'pino-pretty'
}
})
server.useGlobalMiddleware(requestLogger({
logger: pinoLogger
}))输出示例
json
{
"level": "info",
"time": 1704067200000,
"method": "POST",
"path": "/api/users",
"status": 201,
"duration": 45,
"userAgent": "Mozilla/5.0...",
"ip": "192.168.1.1"
}