Comparing version 1.5.0 to 1.6.0
18
index.js
@@ -20,2 +20,6 @@ 'use strict' | ||
if (options.logEvents === undefined) { | ||
options.logEvents = ['onPostStart', 'onPostStop', 'response', 'request-error'] | ||
} | ||
var logger | ||
@@ -70,3 +74,3 @@ if (options.instance) { | ||
// log when a request completes with an error | ||
server.on('request-error', function (request, err) { | ||
tryAddEvent(server, options, 'on', 'request-error', function (request, err) { | ||
request.logger.warn({ | ||
@@ -79,3 +83,3 @@ res: request.raw.res, | ||
// log when a request completes | ||
server.on('response', function (request) { | ||
tryAddEvent(server, options, 'on', 'response', function (request) { | ||
const info = request.info | ||
@@ -88,3 +92,3 @@ request.logger.info({ | ||
server.ext('onPostStart', function (s, cb) { | ||
tryAddEvent(server, options, 'ext', 'onPostStart', function (s, cb) { | ||
logger.info(server.info, 'server started') | ||
@@ -94,3 +98,3 @@ cb() | ||
server.ext('onPostStop', function (s, cb) { | ||
tryAddEvent(server, options, 'ext', 'onPostStop', function (s, cb) { | ||
logger.info(server.info, 'server stopped') | ||
@@ -102,2 +106,8 @@ cb() | ||
function tryAddEvent (server, options, type, event, cb) { | ||
if (options.logEvents && options.logEvents.indexOf(event) !== -1) { | ||
server[type](event, cb) | ||
} | ||
} | ||
function logEvent (current, event) { | ||
@@ -104,0 +114,0 @@ var tags = event.tags |
{ | ||
"name": "hapi-pino", | ||
"version": "1.5.0", | ||
"version": "1.6.0", | ||
"description": "Hapi plugin for the Pino logger ", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -98,2 +98,5 @@ # hapi-pino [](https://travis-ci.org/pinojs/hapi-pino) [](https://coveralls.io/github/pinojs/hapi-pino?branch=master) | ||
The instance's `stream` and `serializers` take precedence. | ||
- `[logEvents]` - Takes an array of strings with the events to log. Default is to | ||
log all events e.g. `['onPostStart', 'onPostStop', 'response', 'request-error']`. | ||
Set to `false/null` to disable all events. | ||
- `[mergeHapiLogData]` - When enabled, Hapi-pino will merge the data received | ||
@@ -100,0 +103,0 @@ from Hapi's logging interface (`server.log(tags, data)` or `request.log(tags, data)`) |
157
test.js
@@ -11,2 +11,6 @@ 'use strict' | ||
const test = lab.test | ||
const before = lab.before | ||
const beforeEach = lab.beforeEach | ||
const after = lab.after | ||
const afterEach = lab.afterEach | ||
const expect = Code.expect | ||
@@ -90,13 +94,29 @@ | ||
test('log on server start', (done) => { | ||
const server = getServer() | ||
registerWithSink(server, 'info', (data, enc, cb) => { | ||
expect(data).to.include(server.info) | ||
expect(data.msg).to.equal('server started') | ||
experiment('log on server start', () => { | ||
let server | ||
before((cb) => { | ||
server = getServer() | ||
cb() | ||
done() | ||
}, (err) => { | ||
expect(err).to.be.undefined() | ||
server.start((err) => { | ||
}) | ||
after((cb) => { | ||
server.stop(cb) | ||
}) | ||
test('log on server start', (done) => { | ||
let executed = false | ||
registerWithSink(server, 'info', (data, enc, cb) => { | ||
if (!executed) { | ||
executed = true | ||
expect(data).to.include(server.info) | ||
expect(data.msg).to.equal('server started') | ||
cb() | ||
done() | ||
} | ||
}, (err) => { | ||
expect(err).to.be.undefined() | ||
server.start((err) => { | ||
expect(err).to.be.undefined() | ||
}) | ||
}) | ||
@@ -371,2 +391,121 @@ }) | ||
experiment('disables log events', () => { | ||
let server | ||
beforeEach((cb) => { | ||
server = getServer() | ||
cb() | ||
}) | ||
afterEach((cb) => { | ||
server.stop() | ||
cb() | ||
}) | ||
test('server-start', (done) => { | ||
let called = false | ||
const stream = sink(() => { | ||
called = true | ||
}) | ||
const plugin = { | ||
register: Pino.register, | ||
options: { | ||
stream: stream, | ||
level: 'info', | ||
logEvents: false | ||
} | ||
} | ||
server.register(plugin, (err) => { | ||
expect(err).to.be.undefined() | ||
server.start((err) => { | ||
expect(err).to.be.undefined() | ||
expect(called).to.be.false() | ||
done() | ||
}) | ||
}) | ||
}) | ||
test('server-stop', (done) => { | ||
let called = false | ||
const stream = sink(() => { | ||
called = true | ||
}) | ||
const plugin = { | ||
register: Pino.register, | ||
options: { | ||
stream: stream, | ||
level: 'info', | ||
logEvents: false | ||
} | ||
} | ||
server.register(plugin, (err) => { | ||
expect(err).to.be.undefined() | ||
server.stop((err) => { | ||
expect(err).to.be.undefined() | ||
expect(called).to.be.false() | ||
done() | ||
}) | ||
}) | ||
}) | ||
test('response', (done) => { | ||
let called = false | ||
const stream = sink(() => { | ||
called = true | ||
}) | ||
const plugin = { | ||
register: Pino.register, | ||
options: { | ||
stream: stream, | ||
level: 'info', | ||
logEvents: false | ||
} | ||
} | ||
server.register(plugin, (err) => { | ||
expect(err).to.be.undefined() | ||
server.inject('/', (res) => { | ||
expect(called).to.be.false() | ||
done() | ||
}) | ||
}) | ||
}) | ||
test('request-error', (done) => { | ||
let called = false | ||
const stream = sink(() => { | ||
called = true | ||
}) | ||
const plugin = { | ||
register: Pino.register, | ||
options: { | ||
stream: stream, | ||
level: 'info', | ||
logEvents: false | ||
} | ||
} | ||
server.register(plugin, (err) => { | ||
expect(err).to.be.undefined() | ||
server.route({ | ||
method: 'GET', | ||
path: '/', | ||
handler: (request, reply) => { | ||
return reply(new Error('boom')) | ||
} | ||
}) | ||
server.inject('/', (res) => { | ||
expect(called).to.be.false() | ||
done() | ||
}) | ||
}) | ||
}) | ||
}) | ||
experiment('uses a prior pino instance', () => { | ||
@@ -373,0 +512,0 @@ test('without pre-defined serializers', (done) => { |
30899
942
157