From 397418087c66428c91e7b28a68bf1a2570d44f04 Mon Sep 17 00:00:00 2001 From: Adri Van Houdt Date: Mon, 21 Mar 2022 17:19:53 +0100 Subject: [PATCH] fix: use error message as log message for request error logs (#159) --- index.js | 2 +- test.js | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index 128a006..3ba5e47 100644 --- a/index.js +++ b/index.js @@ -147,7 +147,7 @@ async function register (server, options) { tags: event.tags, err: event.error }, - 'request error' + event.error.message // Will default to `Internal Server Error` by hapi ) } else if (event.channel === 'app' && !isCustomTagsLoggingIgnored(event, ignoredEventTags.request)) { logEvent(request.logger, event) diff --git a/test.js b/test.js index 7c7849c..210b00c 100644 --- a/test.js +++ b/test.js @@ -303,7 +303,39 @@ experiment('logs each request', () => { if (count === 0) { expect(data.err.message).to.equal('boom') expect(data.level).to.equal(50) - expect(data.msg).to.equal('request error') + expect(data.msg).to.equal('boom') + } else { + expect(data.res.statusCode).to.equal(500) + expect(data.level).to.equal(30) + expect(data.msg).to.match(/get \/ 500 \(\d*ms\)/) + done() + } + count++ + cb() + }) + await server.inject('/') + await finish + }) + + test('handles 500s with no message', async () => { + const server = getServer() + let count = 0 + let done + const finish = new Promise(function (resolve, reject) { + done = resolve + }) + server.route({ + path: '/', + method: 'GET', + handler: (req, reply) => { + throw new Error() + } + }) + await registerWithSink(server, 'info', (data, enc, cb) => { + if (count === 0) { + expect(data.err.message).to.equal('Internal Server Error') + expect(data.level).to.equal(50) + expect(data.msg).to.equal('Internal Server Error') } else { expect(data.res.statusCode).to.equal(500) expect(data.level).to.equal(30)