Skip to content

Commit

Permalink
separate simple from full response logging, obfuscate URL passwords
Browse files Browse the repository at this point in the history
  • Loading branch information
refractalize committed Apr 11, 2019
1 parent 3edb8a4 commit 62c77b6
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 10 deletions.
10 changes: 7 additions & 3 deletions middleware/exception.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
var middleware = require('./middleware')
var extend = require('../extend')
var obfuscateUrlPassword = require('../obfuscateUrlPassword')
var logErrors = require('debug')('httpism:errors')
var logError = require('debug')('httpism:error')
var prepareForLogging = require('./prepareForLogging')
var logDetailError = require('debug')('httpism:response:error')

module.exports = middleware('exception', function (request, next) {
return next().then(function (response) {
Expand All @@ -10,8 +12,10 @@ module.exports = middleware('exception', function (request, next) {

if (isException) {
var msg = request.method.toUpperCase() + ' ' + obfuscateUrlPassword(request.url) + ' => ' + response.statusCode + ' ' + response.statusText
logErrors(msg, response)
var error = extend(new Error(msg), response)
logError(msg)
var logResponse = prepareForLogging(response)
logDetailError(logResponse)
var error = extend(new Error(msg), logResponse)
throw error
} else {
return response
Expand Down
4 changes: 3 additions & 1 deletion middleware/xhr.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,11 @@ module.exports = middleware('xhr', function (request) {
xhr.open(request.method, request.url, true)
xhr.onload = function () {
var statusCode = xhr.status
var body = statusCode === 204 ? undefined : xhr.responseText

var response = {
body: statusCode === 204 ? undefined : xhr.responseText,
body: body,
stringBody: body,
headers: parseHeaders(xhr.getAllResponseHeaders()),
statusCode: statusCode,
url: responseUrl(xhr, request.url),
Expand Down
6 changes: 4 additions & 2 deletions readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -168,8 +168,10 @@ DEBUG=httpism* node app.js
```

* `httpism` simple request => response, i.e. `GET http://www.example.com/api => 200 (40ms)`
* `httpism:request` the request
* `httpism:response` the response
* `httpism:error` only errors, shown in simple request => response, i.e. `GET http://www.example.com/api => 500 (40ms)`
* `httpism:request` the full request including body
* `httpism:response` the full response including body
* `httpism:response:error` only errors, the full response including body

More information in debug's README.

Expand Down
2 changes: 1 addition & 1 deletion test/browser/httpismSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ describe('httpism', function () {
throw new Error('expected to throw exception')
}, function (response) {
expect(response.message).to.eql('GET /status/404 => 404 Not Found')
expect(response.body.method).to.eql('GET')
expect(JSON.parse(response.body).method).to.eql('GET')
expect(response.headers['content-type']).to.equal('application/json; charset=utf-8')
expect(response.url).to.equal('/status/404')
})
Expand Down
7 changes: 4 additions & 3 deletions test/httpismSpec.js
Original file line number Diff line number Diff line change
Expand Up @@ -783,7 +783,7 @@ describe('httpism', function () {
}).catch(function (e) {
expect(e.message).to.equal('GET ' + baseurl + '/400 => 400 Bad Request')
expect(e.statusCode).to.equal(400)
expect(e.body.message).to.equal('oh dear')
expect(e.body).to.equal('{"message":"oh dear"}')
})
})

Expand All @@ -792,8 +792,9 @@ describe('httpism', function () {
assert.fail('expected an exception to be thrown')
}).catch(function (e) {
expect(e.message).to.equal('GET http://user:********@localhost:' + port + '/400 => 400 Bad Request')
expect(e.url).to.equal('http://user:********@localhost:' + port + '/400')
expect(e.statusCode).to.equal(400)
expect(e.body.message).to.equal('oh dear')
expect(e.body).to.equal('{"message":"oh dear"}')
})
})

Expand All @@ -814,7 +815,7 @@ describe('httpism', function () {
}).catch(function (e) {
expect(e.message).to.equal('GET ' + baseurl + '/400 => 400 Bad Request')
expect(e.statusCode).to.equal(400)
expect(e.body.message).to.equal('oh dear')
expect(e.body).to.equal('{"message":"oh dear"}')
})
})

Expand Down

0 comments on commit 62c77b6

Please sign in to comment.