bunyan-request

Request, response logger middleware using bunyan. Also provides request<>response duration.

Usage no npm install needed!

<script type="module">
  import bunyanRequest from 'https://cdn.skypack.dev/bunyan-request';
</script>

README

bunyan-request

Build Status Dependency Status devDependency Status

npm install bunyan-request --save

Request, response logger middleware for bunyan:

  • log request as req
  • log response as res
  • log request<>response duration in milliseconds as duration
  • creates, use and forward to response the x-request-id request header: get it if present, create it otherwise (uuid.v4())
  • log request id as id
  • provides req.log as an id-specialized logger for you to track your request in your entire application, every time you access the request object
  • compatible with pure http server, express, connect and any http middleware system
  • uses standard bunyan serializers

Here are the fields it creates, beautified with | bunyan cli.

screenshot

Install

npm install bunyan-request --save

Usage

var bunyan = require('bunyan');
var bunyanRequest = require('bunyan-request');
var express = require('express');

var app = express();
var logger = bunyan.createLogger({name: 'My App'});
var requestLogger = bunyanRequest({
  logger: logger,
  headerName: 'x-request-id'
});

app.use(requestLogger);
app.get('/', function(req, res) {
  // now use `req.log` as your request-specialized bunyan logger
  req.log.info('YO DAWG!');
  res.send('ok');
});

x-request-id

Will use and forward x-request-id (case insensitive) header when present.

Otherwise it will generate a uuid.v4() and add it to the response headers.

Example

npm run example

See example.

Test

npm test

Credits

First version by tellnes/bunyan-middleware.

License

MIT