From 5a999f964edfaa654b8c734f1c9d1c46b44e965f Mon Sep 17 00:00:00 2001 From: davidmarkclements Date: Tue, 29 May 2018 02:44:49 +0200 Subject: [PATCH 1/2] fix: format opts typo --- pino.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pino.js b/pino.js index 697b15f7e..a2caa8928 100644 --- a/pino.js +++ b/pino.js @@ -320,7 +320,7 @@ function pino (opts, stream) { instance.timestamp = iopts.timestamp instance.slowtime = iopts.slowtime instance.cache = iopts.cache - instance.formatiopts = iopts.formatiopts + instance.formatOpts = iopts.formatOpts instance.onTerminated = iopts.onTerminated instance.messageKey = iopts.messageKey instance.messageKeyString = iopts.messageKeyString From e926df7a2fca9cb684916a63caa8829267cb5211 Mon Sep 17 00:00:00 2001 From: davidmarkclements Date: Sat, 2 Jun 2018 14:21:05 +0200 Subject: [PATCH 2/2] correct interpolation safety behaviour --- pino.js | 2 +- test/basic.test.js | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/pino.js b/pino.js index a2caa8928..d7ad5b779 100644 --- a/pino.js +++ b/pino.js @@ -297,7 +297,7 @@ function pino (opts, stream) { // internal options iopts.stringify = iopts.safe ? stringifySafe : JSON.stringify - iopts.formatOpts = {lowres: true} + iopts.formatOpts = {lowres: !iopts.safe} iopts.messageKeyString = `,"${iopts.messageKey}":` iopts.end = ',"v":' + LOG_VERSION + '}' + (iopts.crlf ? '\r\n' : '\n') iopts.cache = !iopts.extreme ? null : { diff --git a/test/basic.test.js b/test/basic.test.js index fed25f746..d5c37e2f9 100644 --- a/test/basic.test.js +++ b/test/basic.test.js @@ -506,3 +506,25 @@ test('when safe is true it should ONLY use `fast-safe-stringify`', function (t) }) t.end() }) + +test('when safe is true, fast-safe-stringify must be used when interpolating', function (t) { + var instance = pino({safe: true}, sink(function (chunk, enc, cb) { + const { msg } = chunk + t.is(msg, 'test {"a":{"b":{"c":"[Circular]"}}}') + t.end() + })) + var o = { a: { b: {} } } + o.a.b.c = o.a.b + instance.info('test', o) +}) + +test('when safe is false, interpolation output circulars at the root', function (t) { + var instance = pino({safe: false}, sink(function (chunk, enc, cb) { + const { msg } = chunk + t.is(msg, 'test "[Circular]"') + t.end() + })) + var o = { a: { b: {} } } + o.a.b.c = o.a.b + instance.info('test', o) +})