From a38c9e6675bd6165952c2478efc98dd9e81aa524 Mon Sep 17 00:00:00 2001 From: Eric Doughty-Papassideris Date: Wed, 12 Mar 2025 23:14:25 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=8A=20back:=20Improve=20fastify=20erro?= =?UTF-8?q?r=20handler=20logging?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/platform/services/webserver/error.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/tdrive/backend/node/src/core/platform/services/webserver/error.ts b/tdrive/backend/node/src/core/platform/services/webserver/error.ts index 28e7bfa6..3010a446 100644 --- a/tdrive/backend/node/src/core/platform/services/webserver/error.ts +++ b/tdrive/backend/node/src/core/platform/services/webserver/error.ts @@ -1,10 +1,22 @@ import { FastifyInstance } from "fastify"; import { logger } from "../../framework/logger"; +import { CrudException } from "../../framework/api/crud-service"; function serverErrorHandler(server: FastifyInstance): void { server.setErrorHandler(async (err, request, reply) => { - logger.error(`Got ${reply.statusCode} error on request ${request.id} : `, err); - server.log.debug(`Got ${reply.statusCode} error on request ${request.id} : ${err.toString()}`); + if (reply.statusCode == 200 || !reply.statusCode) { + const status = err.statusCode || (err as any).status; + reply.status(status < 400 ? 500 : status); + } + logger.error( + err instanceof CrudException + ? { + type: "CrudException", + message: err.message, + } + : { err }, + `Got ${reply.statusCode} error on request ${request.id} : ${err.toString()}`, + ); await reply.send( reply.statusCode == 500 ? {