From 489e017d7744f82de0ef8d963353d46accad94ec Mon Sep 17 00:00:00 2001 From: zkldi <20380519+zkldi@users.noreply.github.com> Date: Tue, 28 May 2024 13:03:23 +0100 Subject: [PATCH] massively improve logging --- .../src/server/middleware/request-logger.ts | 10 +++++++- server/src/server/router/ir/router.ts | 24 +++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/server/src/server/middleware/request-logger.ts b/server/src/server/middleware/request-logger.ts index a23e232fc..f46c1ff26 100644 --- a/server/src/server/middleware/request-logger.ts +++ b/server/src/server/middleware/request-logger.ts @@ -65,7 +65,15 @@ export const RequestLoggerMiddleware: RequestHandler = (req, res, next) => { } if (res.statusCode < 400 || res.statusCode === 404) { - logger.verbose( + let level: "info" | "verbose"; + + if (req.url.includes("/ir/")) { + level = "info"; + } else { + level = "verbose"; + } + + logger[level]( `(${req.method} ${req.originalUrl}) Returned ${res.statusCode}.`, contents ); diff --git a/server/src/server/router/ir/router.ts b/server/src/server/router/ir/router.ts index ec0e2da2d..ad413defe 100644 --- a/server/src/server/router/ir/router.ts +++ b/server/src/server/router/ir/router.ts @@ -13,9 +13,33 @@ import { } from "../../middleware/auth"; import { RequireBokutachi, RequireKamaitachi } from "../../middleware/type-require"; import { Router } from "express"; +import { SYMBOL_TACHI_API_AUTH } from "lib/constants/tachi"; +import CreateLogCtx from "lib/logger/logger"; +import { FormatUserDoc, GetUserWithID } from "utils/user"; const router: Router = Router({ mergeParams: true }); +const logger = CreateLogCtx(__filename); + +router.use(async (req, res, next) => { + let user; + + if (req[SYMBOL_TACHI_API_AUTH].userID) { + user = await GetUserWithID(req[SYMBOL_TACHI_API_AUTH].userID); + } else { + user = null; + } + + logger.info( + `IR import request received from: ${ + user ? FormatUserDoc(user) : `#${req[SYMBOL_TACHI_API_AUTH].userID}` + }`, + { user, body: req.body, query: req.query, url: req.url } + ); + + next(); +}); + // Common IRs router.use("/direct-manual", SetRequestPermissions, RequireNotGuest, directManualIR);