From ff8515dbd07e376d45e32a11e7af41db52e8767f Mon Sep 17 00:00:00 2001 From: Matteo Collina Date: Mon, 16 Jan 2017 14:17:38 +0100 Subject: [PATCH 1/4] Normalize messages as strings. --- pino.js | 2 +- test/basic.test.js | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/pino.js b/pino.js index 2b8482fc1..f099e0f7e 100644 --- a/pino.js +++ b/pino.js @@ -234,7 +234,7 @@ Pino.prototype.asJson = function asJson (obj, msg, num) { // to catch both null and undefined /* eslint-disable eqeqeq */ if (msg != undefined) { - data += ',"msg":' + JSON.stringify(msg) + data += ',"msg":' + JSON.stringify('' + msg) } var value if (obj) { diff --git a/test/basic.test.js b/test/basic.test.js index fe5778952..3ff7978aa 100644 --- a/test/basic.test.js +++ b/test/basic.test.js @@ -342,3 +342,38 @@ test('correctly support node v4+ stderr', function (t) { instance.fatal('a message') }) + +test('normalize number to string', function (t) { + var instance = pino(sink(function (chunk, enc, cb) { + delete chunk.time + t.deepEqual(chunk, { + pid: pid, + hostname: hostname, + level: 30, + msg: '1', + v: 1 + }) + t.end() + cb() + })) + + instance.info(1) +}) + +test('normalize number to string with an object', function (t) { + var instance = pino(sink(function (chunk, enc, cb) { + delete chunk.time + t.deepEqual(chunk, { + pid: pid, + hostname: hostname, + level: 30, + msg: '1', + answer: 42, + v: 1 + }) + t.end() + cb() + })) + + instance.info({ answer: 42 }, 1) +}) From 80cc8771fa83b599d704375a54435eef14d4da0b Mon Sep 17 00:00:00 2001 From: Octavian Ionescu Date: Mon, 16 Jan 2017 22:49:32 +0200 Subject: [PATCH 2/4] fixed pretty.js for custom logLevel Signed-off-by: Octavian Ionescu --- pretty.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pretty.js b/pretty.js index 844021f3b..ab661d73e 100755 --- a/pretty.js +++ b/pretty.js @@ -7,6 +7,7 @@ var Parse = require('fast-json-parse') var chalk = require('chalk') var levels = { + default: 'USERLVL', 60: 'FATAL', 50: 'ERROR', 40: 'WARN', @@ -70,6 +71,7 @@ function pretty (opts) { }) levelColors = { + default: ctx.white, 60: ctx.bgRed, 50: ctx.red, 40: ctx.yellow, @@ -128,7 +130,11 @@ function pretty (opts) { } function asColoredLevel (value) { - return levelColors[value.level](levels[value.level]) + if (levelColors.hasOwnProperty(value.level)) { + return levelColors[value.level](levels[value.level]) + } else { + return levelColors.default(levels.default) + } } } From 538c4b103481769fbc801d05136b537383b065af Mon Sep 17 00:00:00 2001 From: Octavian Ionescu Date: Mon, 16 Jan 2017 22:57:39 +0200 Subject: [PATCH 3/4] added test for custom level Signed-off-by: Octavian Ionescu --- test/pretty.test.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/pretty.test.js b/test/pretty.test.js index fb8908033..73e49de7c 100644 --- a/test/pretty.test.js +++ b/test/pretty.test.js @@ -172,3 +172,17 @@ test('handles `true` input', function (t) { pretty.write('true') pretty.end() }) + +test('accept customLogLevvel', function (t) { + t.plan(1) + var pretty = pino.pretty() + + pretty.pipe(split(function (line) { + t.ok(line.indexOf('USERLVL') > 0, 'include custom level') + return line + })) + + var instance = pino({level: 'testCustom', levelVal: 35}, pretty) + + instance.testCustom('test message') +}) From d164281454e17a92018e58253a09bbf73240ef04 Mon Sep 17 00:00:00 2001 From: davidmarkclements Date: Mon, 16 Jan 2017 18:08:41 -0500 Subject: [PATCH 4/4] 3.1.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1f82da324..106d627b7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pino", - "version": "3.1.1", + "version": "3.1.2", "description": "super fast, all natural json logger", "main": "pino.js", "browser": "./browser.js",