uphold/request-logger

Name: request-logger

Owner: Uphold

Description: A wrapper for the request module that logs all request events.

Created: 2016-12-30 18:08:23.0

Updated: 2017-01-09 14:37:54.0

Pushed: 2017-03-31 18:55:03.0

Homepage:

Size: 41

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

request-logger

A wrapper for the request module that logs all request events.

Status

npm version build status

Installation

Install the package via yarn:

rn add '@uphold/request-logger'

Or via npm:

m install '@uphold/request-logger' --save
Usage

Wrap the request module using @uphold/request-logger. By default, all events will be logged to stdout.

t logger = require('@uphold/request-logger');
t request = logger(require('request'));

est.get('https://www.github.com');

 headers: ?,
 id: '6bfc21a0-0dad-48b2-8378-762e5f85f014',
 method: 'GET',
 type: 'request',
 uri: 'https://www.github.com/' }
 headers: ?,
 id: '6bfc21a0-0dad-48b2-8378-762e5f85f014',
 statusCode: 301,
 type: 'redirect',
 uri: 'https://github.com/' }
 headers: ?,
 id: '6bfc21a0-0dad-48b2-8378-762e5f85f014',
 method: 'GET',
 type: 'request',
 uri: 'https://github.com/' }
 headers: ?,
 id: '6bfc21a0-0dad-48b2-8378-762e5f85f014',
 statusCode: 200,
 type: 'response',
 uri: 'https://github.com/' }

You can optionally define a custom logging function which receives the request object (data) and the request instance:

t logger = require('@uphold/request-logger');
t request = logger(require('request'), data => console.log(`${data.id} ${data.type}: ${data.uri}${data.statusCode ? ` (${data.statusCode})` : ''} ${(data.body ? `${data.body}` : '').length} bytes`));

est.get('https://www.github.com', () => {});

a3600f9-0995-4a89-951f-caf7c0a79a69 request: https://www.github.com/ 0 bytes
a3600f9-0995-4a89-951f-caf7c0a79a69 redirect: https://github.com/ (301) 0 bytes
a3600f9-0995-4a89-951f-caf7c0a79a69 request: https://github.com/ 0 bytes
a3600f9-0995-4a89-951f-caf7c0a79a69 response: https://github.com/ (200) 25562 bytes

Each data object contains a type property indicating the type of event:

In every event, a data.id parameter is defined to allow matching it to the request it originated from.

Compatibility

The recommended node.js version is >= 6 as it ships with native ES2015 Proxy support. This module supports node.js 4 by means of a polyfill that is loaded under the hood. As usual, keep in mind that polyfills are not as performant as their native counterpart.

The minimum required request version is 2.27.0, although 2.54.0 is a particularly troubled version which is best avoided.

Release
m version [<newversion> | major | minor | patch] -m "Release %s"`
License

MIT


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.