# bunyan-request

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

Latest version **1.4.0** (published 2018-10-11) · MIT license · 0 weekly downloads

## Install

```sh
npm install bunyan-request
pnpm add bunyan-request
yarn add bunyan-request
bun add bunyan-request
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.4.0 |
| Published | 2018-10-11 |
| First published | 2014-10-08 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 76.6 KB |
| Known vulnerabilities | 0 (+1 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 13 |
| Maintainers | aleric323, piranna, vvo |
| Keywords | bunyan, logger, express, request, response, connect, http, duration |

## Links

- npm: https://www.npmjs.com/package/bunyan-request
- Repository: https://github.com/vvo/bunyan-request
- Homepage: https://github.com/vvo/bunyan-request#readme
- Issues: https://github.com/vvo/bunyan-request/issues
- npm.io page: https://npm.io/package/bunyan-request

## Dependencies (1)

- [uuid](https://npm.io/package/uuid.md) ^2.0.1

## Alternatives

- [cli-color](https://npm.io/package/cli-color.md) — 3.4M weekly downloads
- [log](https://npm.io/package/log.md) — 1.3M weekly downloads
- [logstash-client](https://npm.io/package/logstash-client.md) — 4.5K weekly downloads
- [@nocobase/plugin-logger](https://npm.io/package/@nocobase/plugin-logger.md) — 2.0K weekly downloads
- [child-process-debug](https://npm.io/package/child-process-debug.md) — 695 weekly downloads

## Recent versions

- 1.4.0 (latest) — 2018-10-11
- 1.3.0 — 2018-10-09
- 1.2.0 — 2015-07-26
- 1.1.0 — 2014-10-13
- 1.0.1 — 2014-10-08

## README

# bunyan-request
[![Build Status](http://img.shields.io/travis/vvo/bunyan-request/master.svg?style=flat-square)](https://travis-ci.org/vvo/bunyan-request) [![Dependency Status](http://img.shields.io/david/vvo/bunyan-request.svg?style=flat-square)](https://david-dm.org/vvo/bunyan-request) [![devDependency Status](http://img.shields.io/david/dev/vvo/bunyan-request.svg?style=flat-square)](https://david-dm.org/vvo/bunyan-request#info=devDependencies)

```shell
npm install bunyan-request --save
```

Request, response logger middleware for [bunyan](https://github.com/trentm/node-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()](https://github.com/defunctzombie/node-uuid#uuidv4options--buffer--offset))
- 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](http://nodejs.org/api/http.html#http_http_createserver_requestlistener), [express](https://github.com/strongloop/express), [connect](https://github.com/senchalabs/connect) and any http middleware system
- uses standard [bunyan serializers](https://github.com/trentm/node-bunyan#serializers)

Here are the fields it creates, beautified with [`| bunyan`](https://github.com/trentm/node-bunyan#cli-usage) cli.

![screenshot](screenshot.png)

## Install

```shell
npm install bunyan-request --save
```

## Usage

```js
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()](https://github.com/defunctzombie/node-uuid#uuidv4options--buffer--offset) and
add it to the response headers.

## Example

```shell
npm run example
```

See [example](example).

## Test

```shell
npm test
```

## Credits

First version by [tellnes/bunyan-middleware](https://github.com/tellnes/bunyan-middleware).

## License

MIT

---
_Source: https://npm.io/package/bunyan-request · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
