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(); +}