UNPKG

@fran-834/gs-microservice-core

Version:

Core package for Node.js microservices by Galduria Software. Includes security, logging, validation, and error handling middlewares.

34 lines (33 loc) 1.08 kB
import morgan from "morgan"; import logger from "./logger.js"; /** * Morgan token to get the request ID. * Returns the request ID if it exists. */ morgan.token("id", function getId(req) { return req.id; }); /** * Express middleware for HTTP logging with Morgan and Winston. * Logs request details in JSON format. */ const morganMiddleware = morgan(function (tokens, req, res) { return JSON.stringify({ id: tokens.id(req, res), remote_address: tokens["remote-addr"](req, res), method: tokens.method(req, res), url: tokens.url(req, res), status: Number.parseFloat(tokens.status(req, res) ?? "0"), content_length: tokens.res(req, res, "content-length"), response_time: Number.parseFloat(tokens["response-time"](req, res) ?? "0"), }); }, { stream: { // Configure Morgan to use our custom logger with the http severity write: (message) => { const data = JSON.parse(message); logger.info(`incoming-request`, data); }, }, }); export default morganMiddleware;