request-log-starter
Version:
Request logging middleware for Nuxt 3 applications
64 lines (60 loc) • 1.61 kB
text/typescript
import * as _nuxt_schema from '@nuxt/schema';
import { H3Event } from 'h3';
interface RequestLogOptions {
/**
* Enable request logging
* @default true
*/
enabled?: boolean;
/**
* Include request body in logs
* @default false
*/
logBody?: boolean;
/**
* Include request headers in logs
* @default false
*/
logHeaders?: boolean;
/**
* Custom filter function to determine which requests to log
* @param event H3Event object
* @returns Boolean indicating whether to log the request
*/
filter?: (event: H3Event) => boolean;
/**
* Output format for logs
* @default 'json'
*/
format?: "json" | "text";
/**
* Headers to mask in logs (e.g. for sensitive information)
* @default ['authorization', 'cookie']
*/
maskHeaders?: string[];
}
type ModuleOptions = RequestLogOptions;
declare module "nuxt/schema" {
interface NuxtConfig {
requestLog?: RequestLogOptions;
}
interface NuxtOptions {
requestLog?: RequestLogOptions;
}
}
interface RequestLogInfo {
timestamp: string;
method: string;
url: string;
statusCode: number;
responseTime?: number;
ip?: string;
userAgent?: string;
body?: any;
headers?: Record<string, string>;
}
interface RequestLogHandler {
(logInfo: RequestLogInfo): void;
}
declare const _default: _nuxt_schema.NuxtModule<RequestLogOptions, RequestLogOptions, false>;
export { type ModuleOptions, type RequestLogHandler, type RequestLogInfo, type RequestLogOptions, _default as default };