diff --git a/src/middleware/logger.ts b/src/middleware/logger.ts index 638bae6..0cab96f 100644 --- a/src/middleware/logger.ts +++ b/src/middleware/logger.ts @@ -1,4 +1,5 @@ import { defineMiddleware } from "astro/middleware" +import ResponseBuilder from 'libs/ResponseBuilder' // `context` and `next` are automatically typed export default defineMiddleware(async ({ request }, next) => { @@ -6,7 +7,21 @@ export default defineMiddleware(async ({ request }, next) => { console.log(`${prefix} ${request.url}`) // can crash if response crash - const res = await next() - console.log(`${prefix} ${'status' in res ? res.status : '???'} ${request.url}`) - return res + try { + const res = await next() + + console.log(`${prefix} ${res.status} ${request.url}`) + + return res + } catch (e) { + console.log(`${prefix} 500 ${request.url}`) + console.error('-------------------------------') + console.error(e) + console.error('-------------------------------') + + return new ResponseBuilder() + .status(500) + .body('An error occured while processing your request') + .build() + } })