{"_id":"@bassettsj/bunyan-middleware","_rev":"3-5d2b19a839ce0c764023cb1872a571b0","name":"@bassettsj/bunyan-middleware","description":"Request, response logger middleware using bunyan. Also provides request<>response duration.","dist-tags":{"latest":"0.3.1"},"versions":{"0.3.1":{"name":"@bassettsj/bunyan-middleware","version":"0.3.1","description":"Request, response logger middleware using bunyan. Also provides request<>response duration.","main":"index.js","dependencies":{"node-uuid":"^1.4.1"},"devDependencies":{},"scripts":{},"repository":{"type":"git","url":"git://github.com/tellnes/bunyan-middleware.git"},"keywords":["bunyan","logger","express","request","response","connect","http","duration"],"author":{"name":"Christian Tellnes","email":"christian@tellnes.no","url":"http://christian.tellnes.com"},"license":"MIT","publishConfig":{"registry":"https://registry.npmjs.org/"},"gitHead":"34ca859d0a7b2a76f4363ed0055f0409abd0fa34","bugs":{"url":"https://github.com/tellnes/bunyan-middleware/issues"},"homepage":"https://github.com/tellnes/bunyan-middleware#readme","_id":"@bassettsj/bunyan-middleware@0.3.1","_shasum":"f597b43656e4da8f736b0b9a8f85ba8dad6f094c","_from":".","_npmVersion":"3.8.6","_nodeVersion":"5.11.1","_npmUser":{"name":"bassettsj","email":"steven.j.bassett@gmail.com"},"dist":{"shasum":"f597b43656e4da8f736b0b9a8f85ba8dad6f094c","tarball":"https://registry.npmjs.org/@bassettsj/bunyan-middleware/-/bunyan-middleware-0.3.1.tgz","integrity":"sha512-KUzEe8tF2biSSXklKtW+0xBJn5j4z6KhcHJIn9q4pFOWaNBVx97pLUbe9SCAmklpdV5eT4oZRwJc5SBvlAfzQg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDC17PpQh/VHRfqAzO02UyUjZVKPVeS/i3O7haiOj7FgwIgD2rMXEee6kNWd4+ls2qzvdVY7uJAcnNYEJgqT6+Ca8Q="}]},"maintainers":[{"name":"bassettsj","email":"steven.j.bassett@gmail.com"}],"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/bunyan-middleware-0.3.1.tgz_1466028124649_0.8677575695328414"}}},"readme":"# bunyan-middleware\n\n[![Dependency Status](https://david-dm.org/tellnes/bunyan-middleware.png)](https://david-dm.org/tellnes/bunyan-middleware)\n[![devDependency Status](https://david-dm.org/tellnes/bunyan-middleware/dev-status.png)](https://david-dm.org/tellnes/bunyan-middleware#info=devDependencies)\n\n```shell\nnpm install bunyan-middleware --save\n```\n\nRequest, response logger middleware for [bunyan](https://github.com/trentm/node-bunyan):\n- log request as `req`\n- log response as `res`\n- log response close events as warnings\n- log request<>response duration in milliseconds as `duration`\n- creates, use and forward to response the `x-request-id` request header: get it if present, create it otherwise ([uuid.v4()](https://github.com/broofa/node-uuid#uuidv4options--buffer--offset))\n- log request id as `req_id` and exposes it as `req.reqId`\n- provides `req.log` and `res.log` as an id-specialized logger for you to track your request in your entire application, every time you access the `request` or `response` object\n- 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\n- uses serializers for `req` and `res` based on [bunyan serializers](https://github.com/trentm/node-bunyan#serializers) if you do not already have a serializer defined.\n- obscure headers containing sensitive information in log outputs (configurable with `obscureHeaders`)\n\n## Install\n\n```shell\nnpm install bunyan-middleware --save\n```\n\n## Usage\n\n```js\nvar bunyan = require('bunyan')\n  , bunyanMiddleware = require('bunyan-middleware')\n  , express = require('express')\n\nvar app = express()\nvar logger = bunyan.createLogger({ name: 'My App' })\n\napp.use(bunyanMiddleware(\n    { headerName: 'X-Request-Id'\n    , propertyName: 'reqId'\n    , logName: 'req_id'\n    , obscureHeaders: []\n    , logger: logger\n    }\n  )\n\napp.get('/', function (req, res) {\n  // now use `req.log` as your request-specialized bunyan logger\n  req.log.info('YO DAWG!')\n  res.send('ok')\n})\n```\n\n## `X-Request-Id`\n\nWill use and forward `X-Request-Id` (case insensitive) header when present.\n\nOtherwise it will generate\na [uuid.v4()](https://github.com/defunctzombie/node-uuid#uuidv4options--buffer--offset) and\nadd it to the response headers.\n\nThe request id is also available as `req.reqId`.\n\n## Express and mounted apps\n\nIf you are using this with express and mounted app which rewrites `req.url` and\nyou are using `bunyan.serializers.req`, then the url in the log output will be\nthe rewritten url. To fix that bunyan-middleware is using its own request\nserializer instead of the default one which is using `req.originalUrl` instead.\n\n\n## Options\n\n**`logger`** REQUIRED\n\n- The bunyan logger instance.\n\n**`headerName`** Default: `'X-Request-Id'`\n\n- The name of the HTTP header for the request id.\n\n**`propertyName`** Default: `'reqId'`\n\n- The name for the property on the request object to set the request id.\n\n**`logName`** Default: `'req_id'`\n\n- The name for the request id in the log output.\n\n**`obscureHeaders`** Default: `null`\n\n- Set to an array with header nams to remove them from log output.\n\n- Eg: `[ 'Authorization' ]`\n\n**`requestStart`** Default: `false`\n\n- Log the start of the request.\n\n**`verbose`** Default: `false`\n\n- Log `req` and `res` for `request start` and `request finish`.\n\n\n## License\n\nMIT. See the `LICENCE` file.\n\n## See Also\n\n- [bunyan-request](https://github.com/vvo/bunyan-request) - a fork by [vvo](https://github.com/vvo).\n\n- [express-bunyan-logger](https://github.com/villadora/express-bunyan-logger)\n","maintainers":[{"name":"bassettsj","email":"steven.j.bassett@gmail.com"}],"time":{"modified":"2022-06-12T15:02:49.282Z","created":"2016-06-15T22:02:06.625Z","0.3.1":"2016-06-15T22:02:06.625Z"},"homepage":"https://github.com/tellnes/bunyan-middleware#readme","keywords":["bunyan","logger","express","request","response","connect","http","duration"],"repository":{"type":"git","url":"git://github.com/tellnes/bunyan-middleware.git"},"author":{"name":"Christian Tellnes","email":"christian@tellnes.no","url":"http://christian.tellnes.com"},"bugs":{"url":"https://github.com/tellnes/bunyan-middleware/issues"},"license":"MIT","readmeFilename":"Readme.md"}