Nuxt 3 Request Logger
A simple, configurable request logging middleware for Nuxt 3 applications.
Features
- 📝 Logs HTTP requests to your Nuxt 3 application
- ⏱️ Records response times
- 🔒 Masks sensitive headers
- 🧩 Configurable output format (JSON or text)
- 🚫 Allows custom filtering of requests
Installation
# npm
npm install @nuxt3-auth-example/request-log-starter
# yarn
yarn add @nuxt3-auth-example/request-log-starter
# pnpm
pnpm add @nuxt3-auth-example/request-log-starter
Setup
Add the module to your nuxt.config.ts
:
export default defineNuxtConfig({
modules: ["@nuxt3-auth-example/request-log-starter"],
// Optional configuration
requestLog: {
enabled: true,
logBody: false,
logHeaders: true,
format: "json", // or 'text'
maskHeaders: ["authorization", "cookie", "x-api-key"],
},
});
Configuration
Option | Type | Default | Description |
---|---|---|---|
enabled |
boolean | true |
Enable or disable request logging |
logBody |
boolean | false |
Include request body in logs |
logHeaders |
boolean | false |
Include HTTP headers in logs |
format |
'json' | 'text' | 'json' |
Output format |
maskHeaders |
string[] | ['authorization', 'cookie'] |
Headers to mask for privacy |
filter |
function | undefined |
Custom filter function |
Custom Filter Function
You can provide a custom filter function to control which requests get logged:
export default defineNuxtConfig({
modules: ["@nuxt3-auth-example/request-log-starter"],
requestLog: {
filter: (event) => {
// Skip logging for static assets
if (event.path.startsWith("/assets/") || event.path.startsWith("/_nuxt/")) {
return false;
}
return true;
},
},
});
Log Output
JSON Format (default)
{
"timestamp": "2023-05-12T15:43:21.123Z",
"method": "POST",
"url": "https://example.com/api/users",
"statusCode": 201,
"responseTime": 42,
"ip": "127.0.0.1",
"userAgent": "Mozilla/5.0...",
"headers": {
"content-type": "application/json",
"authorization": "***MASKED***"
}
}
Text Format
[2023-05-12T15:43:21.123Z] POST https://example.com/api/users 201 42ms
License
MIT