http-ndjson

Log http requests as ndjson.
Installation
$ npm install http-ndjson
Usage
const httpNdjson = require('http-ndjson')
const http = require('http')
http.createServer((req, res) => {
httpNdjson(req, res).pipe(process.stdout)
res.end()
}).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((req, res) => {
const opts = { req: { requestId: req.headers['requestId'] } }
httpNdjson(req, res, opts)
res.end()
}).listen()
API
readStream = httpNdjson(req, res, opts?)
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
readStream.setContentLength(size)
Set the content length in bytes.
See Also
License
MIT