Skip to content

Instantly share code, notes, and snippets.

@erykwalder
Created October 9, 2013 18:09
Show Gist options
  • Save erykwalder/6905581 to your computer and use it in GitHub Desktop.
Save erykwalder/6905581 to your computer and use it in GitHub Desktop.
NodeJS Librato Logger
exports.log = function(type, name, val, data) {
data = data || {};
data[type+"#"+prefixName(name)] = val;
process.stdout.write(this.stringify(data)+"\n");
}
exports.sample = function(name, val, data) {
this.log("sample", name, val, data);
}
exports.count = function(name, val, data) {
this.log("count", name, val, data);
}
exports.measureVal = function(name, val, data) {
this.log("measure", name, val, data);
}
exports.measure = function(name, cb, data) {
data = data || {};
var start_time = new Date();
var _this = this;
return function() {
var dif = (new Date()) - start_time;
_this.measureVal(name, dif, data);
if(cb) return cb.apply(this, arguments);
};
}
exports.stringify = function(data) {
var str = "";
for(var k in data) {
str += k + "=" + data[k] + " ";
}
return str;
}
function prefixName(name) {
return "cp.node."+name;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment