From 57022c749cb494486176ae95b873867fc3abf52c Mon Sep 17 00:00:00 2001 From: Michael Bleigh Date: Wed, 24 Jun 2020 08:59:47 -0700 Subject: [PATCH 1/2] Handles `null` in structured logging (Fixes #716) --- src/logger.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/logger.ts b/src/logger.ts index 4bc851cec..7958ca457 100644 --- a/src/logger.ts +++ b/src/logger.ts @@ -104,7 +104,7 @@ export function error(...args: any[]) { function entryFromArgs(severity: LogSeverity, args: any[]): LogEntry { let entry = {}; const lastArg = args[args.length - 1]; - if (typeof lastArg == 'object' && lastArg.constructor == Object) { + if (lastArg && typeof lastArg == 'object' && lastArg.constructor == Object) { entry = args.pop(); } return Object.assign({}, entry, { From 4000155f516cfd06ba52aa45f854194a2f230225 Mon Sep 17 00:00:00 2001 From: Michael Bleigh Date: Wed, 24 Jun 2020 09:01:27 -0700 Subject: [PATCH 2/2] Update logger.spec.ts --- spec/logger.spec.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/spec/logger.spec.ts b/spec/logger.spec.ts index 517f50f1d..c6859b60a 100644 --- a/spec/logger.spec.ts +++ b/spec/logger.spec.ts @@ -65,6 +65,15 @@ describe(`logger (${ }); sandbox.restore(); // to avoid swallowing test runner output }); + + it('should not recognize null as a structured logging object', () => { + logger.log('hello', 'world', null); + expectStdout({ + severity: 'INFO', + message: 'hello world null', + }); + sandbox.restore(); // to avoid swallowing test runner output + }); }); describe('write', () => {