From 186f3aeac8ed996588964ccdc6a8c6e01bb3afbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=82=8D=E3=82=80=E3=81=AD=E3=81=93?= Date: Wed, 26 Jun 2024 15:49:26 +0900 Subject: [PATCH] =?UTF-8?q?reponse=E3=83=AD=E3=82=B0=E5=8F=96=E5=BE=97=20W?= =?UTF-8?q?IP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/index.ts | 9 +++++---- src/routers/middlewares/responseLogging.ts | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 src/routers/middlewares/responseLogging.ts diff --git a/src/index.ts b/src/index.ts index 10e1634..6f507fd 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,6 +5,7 @@ import metaRouter from "@src/routers/metaRouter"; import parentRouter from "@src/routers/parent"; import childRouter from "@src/routers/child"; import logging from "./routers/middlewares/logging"; +import responseLogging from "./routers/middlewares/responseLogging"; import os from "os"; import { getCommitHash, getCommitMessage } from "@utils/gitMeta"; import { Response, Request, Router } from 'express'; @@ -92,12 +93,12 @@ app.use('/docs', swaggerRouter); logger.info("Swagger enabled and mounted at /docs"); -app.use('/parent', parentRouter); +app.use('/parent', parentRouter, responseLogging); logger.debug("Parent router mounted at /parent"); -app.use('/child', childRouter); +app.use('/child', childRouter, responseLogging); logger.debug("Child router mounted at /child"); -app.use('/debug', debugRouter); // TODO: NODE_ENVに応じてマウントをやめる -app.use('/meta', metaRouter); +app.use('/debug', debugRouter, responseLogging); // TODO: NODE_ENVに応じてマウントをやめる +app.use('/meta', metaRouter, responseLogging); logger.debug("Common routes mounted at /meta and /debug"); logger.success("Routers mounted successfully"); diff --git a/src/routers/middlewares/responseLogging.ts b/src/routers/middlewares/responseLogging.ts new file mode 100644 index 0000000..55e7d89 --- /dev/null +++ b/src/routers/middlewares/responseLogging.ts @@ -0,0 +1,14 @@ +// レスポンスBodyのロギング + +import { getRequestLogger } from "@src/singleton"; +import { NextFunction, Response, Request } from "express"; + +export default function responseLogging(req: Request, res: Response, next: NextFunction) { + const logger = getRequestLogger(); + const originalResp = res.send; + res.send = function (body: any) { + logger.debug(`Response body: ${JSON.stringify(body)}`); + return originalResp.call(this, body); + }; + next(); +}