## 概要 [Task3696: ツールの雛形作成](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3696) - DevContainerを追加 ## レビューポイント - 特になし ## 動作確認状況 - ローカルで確認
29 lines
769 B
TypeScript
29 lines
769 B
TypeScript
import { Injectable, Logger, NestMiddleware } from "@nestjs/common";
|
|
import { Request, Response } from "express";
|
|
|
|
@Injectable()
|
|
export class LoggerMiddleware implements NestMiddleware {
|
|
private readonly logger = new Logger(LoggerMiddleware.name);
|
|
|
|
use(req: Request, res: Response, next: () => void): void {
|
|
this.logger.log(this.createReqMsg(req));
|
|
|
|
res.on("close", () => {
|
|
this.logger.log(this.createResMsg(res));
|
|
});
|
|
next();
|
|
}
|
|
|
|
private createReqMsg(req: Request): string {
|
|
const message = `Request [url=${req.url}, method=${req.method}]`;
|
|
|
|
return message;
|
|
}
|
|
|
|
private createResMsg(res: Response): string {
|
|
const message = `Response [statusCode=${res.statusCode}, message=${res.statusMessage}]`;
|
|
|
|
return message;
|
|
}
|
|
}
|