This module configures the http
and https
modules to raise logging events for every outgoing http request.
Any library or module that uses the default http
and https
modules will be captured. The primary use case is for
centrally adding logging to all outbound api calls to third-party services without needing to manipulate those modules.
The logger will capture request and response arguments as well as the body sent or received.
Example
An example log object for a call to https://www.google.com
:
Request
protocol: 'https:' slashes: true auth: null host: 'www.google.com' port: null hostname: 'www.google.com' hash: null search: null query: null pathname: '/' path: '/' href: 'https://www.google.com/' method: 'GET' headers: host: 'www.google.com' body: ''
Response
statusCode: 200 headers: date: 'Sun, 17 Aug 2014 20:03:02 GMT' expires: '-1' 'cache-control': 'private, max-age=0' 'content-type': 'text/html; charset=ISO-8859-1' 'set-cookie': 'PREF=ID=29ba00825c529e14:FF=0:TM=1408305782:LM=1408305782:S=7FwX1DADc9nIkUE1; expires=Tue, 16-Aug-2016 20:03:02 GMT; path=/; domain=.google.com' 'NID=67=qAT-ji1lswEweR4BMbdLhdZHczj54O6s-OSFgH_rcjXLpOtjej9OR8ADiptMVjARY1hTWPadfixc3lZkfX41XuLFKK_B2J-hsEFHEdxkiL2IAW_AUyZ1MDYUs-Z8_l8q; expires=Mon, 16-Feb-2015 20:03:02 GMT; path=/; domain=.google.com; HttpOnly' p3p: 'CP="This is not a P3P policy! See http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657 for more info."' server: 'gws' 'x-xss-protection': '1; mode=block' 'x-frame-options': 'SAMEORIGIN' 'alternate-protocol': '443:quic' 'transfer-encoding': 'chunked' trailers: {} httpVersion: '1.1' url: '' method: null body: '<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage" lang="en">...</html>'
Usage
To enable logging events initialize the global logger:
var globalLog = ;globalLog;
This will now raise success
and error
events for every http or https request:
globalLog; globalLog;
You may optionally disable logging using the end
function:
globalLog.end();
Options
The initialize
function accepts an options argument that can configure logging.
- maxBodyLength - The maximum length (in bytes) to log for a request or response body.
Testing
Unit tests are provided and can be run via npm test