A powerful middleware for logging user activities in your Express applications.
- π Automatically captures relevant data:
- User information
- Endpoint accessed
- HTTP method
- Date and time
- Request body details
- π§ Configurable detail levels (basic, intermediate, complete)
- πΎ Export options:
- JSON files
- CSV files
- External services (Elasticsearch)
- π Applications requiring audit trails (e.g., GDPR or HIPAA compliance)
- π Internal application monitoring
- π User activity tracking
- π‘οΈ Security logging
npm install audit-log-middleware
const express = require("express");
const { createAuditMiddleware } = require("audit-log-middleware");
const app = express();
// Basic audit middleware configuration
const auditMiddleware = createAuditMiddleware({
level: "complete",
storage: {
type: "file",
options: {
filename: "audit-logs.json",
},
},
});
// Apply middleware globally
app.use(auditMiddleware);
[
{
"timestamp": "2024-01-01T12:00:00.000Z",
"userId": "user123",
"method": "GET",
"endpoint": "/users/1",
"userAgent": "Mozilla/5.0 (compatible; ExampleBrowser/1.0)",
"ip": "71.198.38.7",
"responseStatus": 200
},
{
"timestamp": "2024-01-01T12:01:00.000Z",
"userId": "user123",
"method": "GET",
"endpoint": "/",
"userAgent": "Mozilla/5.0 (compatible; ExampleBrowser/1.0)",
"ip": "216.73.163.219",
"responseStatus": 200,
"responseBody": "{\"message\":\"Hello World!\"}"
}
]
basic
: Logs only essential informationintermediate
: Adds request headers and response statuscomplete
: Includes full request and response details
// File storage
{
type: 'file',
options: {
filename: 'audit-logs.json'
}
}
// Elasticsearch storage
{
type: 'elasticsearch',
options: {
node: 'http://localhost:9200',
index: 'audit-logs'
}
}
- Sensitive data can be filtered out using the
exclude
option - Supports data encryption for stored logs
- Compliant with common security standards
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.