From 3a6996bfbb9c58eeafb78e9faaac5a83ebb1e684 Mon Sep 17 00:00:00 2001 From: Jonatan Nilsson Date: Thu, 30 Nov 2023 04:13:08 +0000 Subject: [PATCH] base: Fix logging of sql parameter errors --- base/db.mjs | 5 ++++- base/error.mjs | 3 ++- base/server.mjs | 3 +++ base/util.mjs | 4 ++-- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/base/db.mjs b/base/db.mjs index ebe2a51..fc2f239 100644 --- a/base/db.mjs +++ b/base/db.mjs @@ -33,7 +33,10 @@ export function initPool(core, config) { if (err.lineNumber && err.procName) { message = `Error at ${err.procName}:${err.lineNumber} => ${message}` } - throw new HttpErrorInternal(message, err) + throw new HttpErrorInternal(message, err, !err.lineNumber ? { + name, + params + } : null) }) }, promises: pool.promises, diff --git a/base/error.mjs b/base/error.mjs index 3a24413..5747e92 100644 --- a/base/error.mjs +++ b/base/error.mjs @@ -1,7 +1,7 @@ import { HttpError } from 'flaska' export class HttpErrorInternal extends HttpError { - constructor(message, inner) { + constructor(message, inner, extra) { super(500, message); Error.captureStackTrace(this, HttpError); @@ -10,5 +10,6 @@ export class HttpErrorInternal extends HttpError { proto.name = 'HttpErrorInternal'; this.inner = inner + this.extra = extra } } \ No newline at end of file diff --git a/base/server.mjs b/base/server.mjs index bb813e0..8c4fff0 100644 --- a/base/server.mjs +++ b/base/server.mjs @@ -54,6 +54,9 @@ export default class Server { ctx.log.warn(err.message) } else { ctx.log.error(err.inner || err) + if (err.extra) { + ctx.log.error({ extra: err.extra }, 'Database parameters') + } ctx.status = 500 } ctx.body = { diff --git a/base/util.mjs b/base/util.mjs index 3a68574..e59a8b3 100644 --- a/base/util.mjs +++ b/base/util.mjs @@ -23,11 +23,11 @@ export function decode(base64StringUrlSafe) { export function parseMediaAndBanner(item) { if (item.banner_path) { item.banner_path = 'https://cdn.nfp.is' + item.banner_path - item.banner_alt_prefix = 'https://cdn.nfp.is' + item.banner_alt_prefix + item.banner_alt_prefix = 'https://cdn.nfp.is' + (item.banner_alt_prefix || '') } if (item.media_path) { item.media_path = 'https://cdn.nfp.is' + item.media_path - item.media_alt_prefix = 'https://cdn.nfp.is' + item.media_alt_prefix + item.media_alt_prefix = 'https://cdn.nfp.is' + (item.media_alt_prefix || '') } }