Skip to content

Instantly share code, notes, and snippets.

@danielb2
Created March 3, 2015 00:30
Show Gist options
  • Save danielb2/e1429a921c2ae6b2785d to your computer and use it in GitHub Desktop.
Save danielb2/e1429a921c2ae6b2785d to your computer and use it in GitHub Desktop.
// Load modules
var Stream = require('stream');
var Hoek = require('hoek');
var SafeStringify = require('json-stringify-safe');
// Declare internals
var internals = {};
var Util = require('util');
var EventEmitter = require('events').EventEmitter;
var FS = require('fs');
internals.Logger = function () {
var self = this;
self.file = process.env.WRECK_DEBUG_FILE;
self.console = process.env.WRECK_DEBUG_CONSOLE;
// self.file = true;
// self.console = true;
self.active = true
if (self.file) {
self.active = true;
self.stream = FS.createWriteStream('moop', { flags: 'a+' });
self.on('write', function (data) {
self.stream.write(data);
});
}
if (self.console) {
self.active = true;
self.on('write', function (data) {
console.log(data);
});
}
}
Util.inherits(internals.Logger, EventEmitter);
internals.Logger.prototype.log = function (err, url, options, req, payload) {
var data = {
method: req.method,
url: url,
options: options,
response: {
payload: payload ? payload.toString() : undefined,
headers: req.res ? req.res.headers : undefined,
statusCode: req.res? req.res.statusCode : undefined,
statusMessage: req.res? req.res.statusMessage : undefined,
},
beginTime: new Date(req.time),
endTime: new Date(),
responseTime: new Date().getTime() - req.time,
error: err ? err : undefined
}
var out = '';
out = out + SafeStringify(data, null, 4);
this.emit('write', out);
}
module.exports = new internals.Logger();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment