A Winston-based logger middleware for Express.js applications with TypeScript support.
- Request logging middleware
- Error logging middleware
- Warning logging with custom codes and details
- TypeScript support with full type definitions
- Colorized console output
- Timestamp-based logging
- Express.js compatible
npm install express-logger-middleware-ts
const { requestLogger, errorLogger, warningLogger } = require('express-logger-middleware-ts');
const express = require('express');
const app = express();
app.use(requestLogger);
warningLogger({
message: "API version 1 is deprecated",
code: "DEPRECATED_API",
details: { version: "1.0" }
});
app.use(errorLogger);
import { requestLogger, errorLogger, warningLogger, Warning } from 'express-logger-middleware-ts';
import express from 'express';
const app = express();
app.use(requestLogger);
// TypeScript will validate this object matches the Warning interface
const warning: Warning = {
message: "API version 1 is deprecated",
code: "DEPRECATED_API",
details: { version: "1.0" }
};
warningLogger(warning);
app.use(errorLogger);
Middleware that logs all incoming HTTP requests. Logs the following information:
- Request method
- URL
- Headers
- Timestamp
app.use(requestLogger);
Error handling middleware that logs errors and sends a 500 response. Logs:
- Error message
- Stack trace
- Request method
- URL
- Headers
app.use(errorLogger);
Function to log warnings with custom codes and details.
interface Warning {
message?: string; // Warning message
code?: string; // Warning code
details?: Record<string, unknown>; // Additional details
}
warningLogger({
message: "Resource limit reached",
code: "RESOURCE_LIMIT",
details: { limit: 1000, current: 999 }
});
The underlying Winston logger instance. Can be used for custom logging if needed.
import { logger } from 'express-logger-middleware-ts';
logger.info('Custom log message');
logger.error('Custom error message');
Logs are formatted as follows:
[TIMESTAMP] LEVEL: MESSAGE METADATA
Example:
2025-01-23T16:15:27.000Z info: Incoming request {"method":"GET","url":"/api/users","headers":{...}}
- Node.js >= 12
- Express.js >= 4.0.0
ISC
Ashish