From 13f280acd6aa3952c8132a976231e738f8d3e1ea Mon Sep 17 00:00:00 2001 From: TomaszS Date: Fri, 19 Jan 2024 14:53:05 +0100 Subject: [PATCH 1/2] Fix req object placement --- logger.js | 4 +++- test/test.js | 29 +++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/logger.js b/logger.js index bca8c77..20c110b 100644 --- a/logger.js +++ b/logger.js @@ -115,6 +115,7 @@ function pinoLogger (opts, stream) { log[level]( onRequestErrorObject(req, res, error, { + [reqKey]: req, [resKey]: res, [errKey]: error, [responseTimeKey]: responseTime @@ -127,6 +128,7 @@ function pinoLogger (opts, stream) { log[level]( onRequestSuccessObject(req, res, { + [reqKey]: req, [resKey]: res, [responseTimeKey]: responseTime }), @@ -141,7 +143,7 @@ function pinoLogger (opts, stream) { const log = quietReqLogger ? logger.child({ [requestIdKey]: req.id }) : logger - let fullReqLogger = log.child({ [reqKey]: req }) + let fullReqLogger = log const customPropBindings = (typeof customProps === 'function') ? customProps(req, res) : customProps if (customPropBindings) { fullReqLogger = fullReqLogger.child(customPropBindings) diff --git a/test/test.js b/test/test.js index 9169da0..707fe9e 100644 --- a/test/test.js +++ b/test/test.js @@ -1260,6 +1260,9 @@ test('uses custom request properties and a receivedMessage callback and the prop const dest = split(JSON.parse) const message = DEFAULT_REQUEST_RECEIVED_MSG const logger = pinoHttp({ + customReceivedObject: function (req) { + return { req } + }, customReceivedMessage: function (_req, _res) { return message }, @@ -1444,3 +1447,29 @@ test('quiet request logging - custom request id key', function (t) { }) }, handler) }) + +test('uses the nested key passed in as an option to hold values', function (t) { + const NESTED_KEY_VALUE = 'someKey' + const dest = split(JSON.parse) + const logger = pinoHttp({ nestedKey: NESTED_KEY_VALUE }, dest) + + setup(t, logger, function (err, server) { + t.error(err) + doGet(server) + }) + + dest.on('data', function (line) { + t.type(line[NESTED_KEY_VALUE], 'object', `${NESTED_KEY_VALUE} should exist`) + t.type(line[NESTED_KEY_VALUE].req, 'object', `req should be nested under ${NESTED_KEY_VALUE}`) + t.type(line[NESTED_KEY_VALUE].res, 'object', `req should be nested under ${NESTED_KEY_VALUE}`) + t.type(line[NESTED_KEY_VALUE].responseTime, 'number', `req should be nested under ${NESTED_KEY_VALUE}`) + + t.ok(line[NESTED_KEY_VALUE], `${NESTED_KEY_VALUE} is defined`) + t.ok(line[NESTED_KEY_VALUE].req, `${NESTED_KEY_VALUE}.req is defined`) + t.ok(line[NESTED_KEY_VALUE].req, `${NESTED_KEY_VALUE}.res is defined`) + t.notOk(line.req, 'req should be nested under nestedKey') + t.notOk(line.res, 'res should be nested under nestedKey') + + t.end() + }) +}) From 4faadb20f02728854251429661b84a74bc526a28 Mon Sep 17 00:00:00 2001 From: TomaszS Date: Fri, 19 Jan 2024 15:04:12 +0100 Subject: [PATCH 2/2] Fix typos --- test/test.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/test/test.js b/test/test.js index 707fe9e..528c9a5 100644 --- a/test/test.js +++ b/test/test.js @@ -1459,14 +1459,16 @@ test('uses the nested key passed in as an option to hold values', function (t) { }) dest.on('data', function (line) { - t.type(line[NESTED_KEY_VALUE], 'object', `${NESTED_KEY_VALUE} should exist`) - t.type(line[NESTED_KEY_VALUE].req, 'object', `req should be nested under ${NESTED_KEY_VALUE}`) - t.type(line[NESTED_KEY_VALUE].res, 'object', `req should be nested under ${NESTED_KEY_VALUE}`) - t.type(line[NESTED_KEY_VALUE].responseTime, 'number', `req should be nested under ${NESTED_KEY_VALUE}`) - - t.ok(line[NESTED_KEY_VALUE], `${NESTED_KEY_VALUE} is defined`) - t.ok(line[NESTED_KEY_VALUE].req, `${NESTED_KEY_VALUE}.req is defined`) - t.ok(line[NESTED_KEY_VALUE].req, `${NESTED_KEY_VALUE}.res is defined`) + const nestedObject = line[NESTED_KEY_VALUE] + + t.type(nestedObject, 'object', `${NESTED_KEY_VALUE} should exist`) + t.type(nestedObject.req, 'object', `req should be nested under ${NESTED_KEY_VALUE}`) + t.type(nestedObject.res, 'object', `res should be nested under ${NESTED_KEY_VALUE}`) + t.type(nestedObject.responseTime, 'number', `responseTime should be nested under ${NESTED_KEY_VALUE}`) + + t.ok(nestedObject, `${NESTED_KEY_VALUE} is defined`) + t.ok(nestedObject.req, `${NESTED_KEY_VALUE}.req is defined`) + t.ok(nestedObject.req, `${NESTED_KEY_VALUE}.res is defined`) t.notOk(line.req, 'req should be nested under nestedKey') t.notOk(line.res, 'res should be nested under nestedKey')