http-ndjson
Log http requests as ndjson
Last updated 8 years ago by yoshuawuyts .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install http-ndjson 
SYNC missed versions from official npm registry.

http-ndjson

NPM version build status Test coverage Downloads js-standard-style

Log http requests as ndjson. Works pretty well with bole, so you should probably use it with that. That is my recommendation.

Installation

$ npm install http-ndjson

Usage

const httpNdjson = require('http-ndjson')
const http = require('http')

http.createServer(function (req, res) {
  const setSize = httpNdjson(req, res, console.log)
  const myCoolResponse = 'chickens'
  setSize(myCoolResponse.length)
  res.end(myCoolResponse)
}).listen()
{ name: 'http', method: 'GET', message: 'request', url: '/' }
{ name: 'http', method: 'GET', message: 'response', url: '/', statusCode: 200, elapsed: '5ms' }

Log custom properties

http-ndjson logs a sensible set of standard properties, but sometimes there's a need to dive in and log more. An optional third argument can be added with custom fields that will be logged on either request or response.

const httpNdjson = require('http-ndjson')
const http = require('http')

http.createServer(function (req, res) {
  const opts = { req: { requestId: req.headers['requestId'] } }
  httpNdjson(req, res, opts, console.log)
  res.end()
}).listen()

If opts.req or opts.res is a function, it will be called and its return value will be used to set custom fields.

Forward headers

Determining the origin of a request can be hard when using reverse-proxies. It's not too uncommon for users to mask their IP by providing an x-forwarded-for header. http-ndjson makes no assumptions about forwarding headers and logs all properties instead. The following headers are logged:

  • x-forwarded-for: standardized reverse proxy header (rfc7239)
  • x-real-ip: non-standard reverse proxy header
  • http-client-ip: non-standard reverse proxy header

API

readStream = httpNdjson(req, res, opts?, cb)

Create an http logger. Returns a write stream. Opts can contain the following values:

  • req: an object with values that will be logged on request
  • res: an object with values that will be logged on response
  • opts: set options
  • cb: handle the returned message

See Also

License

MIT

Current Tags

  • 3.1.0                                ...           latest (8 years ago)

14 Versions

  • 3.1.0                                ...           8 years ago
  • 3.0.0                                ...           10 years ago
  • 2.3.3                                ...           10 years ago
  • 2.3.2                                ...           10 years ago
  • 2.3.1                                ...           10 years ago
  • 2.3.0                                ...           10 years ago
  • 2.2.0                                ...           10 years ago
  • 2.1.0                                ...           10 years ago
  • 2.0.0                                ...           10 years ago
  • 1.1.2                                ...           11 years ago
  • 1.1.1                                ...           11 years ago
  • 1.1.0                                ...           11 years ago
  • 1.0.1                                ...           11 years ago
  • 1.0.0                                ...           11 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 1
Dependencies (2)
Dev Dependencies (5)
Dependents (1)

Copyright 2013 - present © cnpmjs.org | Home |