import { Injectable, NestMiddleware, Logger } from "@nestjs/common"; import { Request, NextFunction } from "express"; import { Response } from "@calcom/platform-types"; @Injectable() export class AppLoggerMiddleware implements NestMiddleware { private logger = new Logger("HTTP"); use(request: Request, response: Response, next: NextFunction): void { const { ip, method, originalUrl } = request; const userAgent = request.get("user-agent") || ""; response.on("close", () => { const { statusCode } = response; const contentLength = response.get("content-length"); this.logger.log(`${method} ${originalUrl} ${statusCode} ${contentLength} - ${userAgent} ${ip}`); }); next(); } }