mirror of https://github.com/lukechilds/node.git
Ryan Dahl
14 years ago
2 changed files with 88 additions and 77 deletions
@ -0,0 +1,83 @@ |
|||||
|
var writeError = process.binding('stdio').writeError; |
||||
|
|
||||
|
// console object
|
||||
|
var formatRegExp = /%[sdj]/g; |
||||
|
function format (f) { |
||||
|
if (typeof f !== 'string') { |
||||
|
var objects = [], util = require('util'); |
||||
|
for (var i = 0; i < arguments.length; i++) { |
||||
|
objects.push(util.inspect(arguments[i])); |
||||
|
} |
||||
|
return objects.join(' '); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
var i = 1; |
||||
|
var args = arguments; |
||||
|
var str = String(f).replace(formatRegExp, function (x) { |
||||
|
switch (x) { |
||||
|
case '%s': return args[i++]; |
||||
|
case '%d': return +args[i++]; |
||||
|
case '%j': return JSON.stringify(args[i++]); |
||||
|
default: |
||||
|
return x; |
||||
|
} |
||||
|
}); |
||||
|
for (var len = args.length; i < len; ++i) { |
||||
|
str += ' ' + args[i]; |
||||
|
} |
||||
|
return str; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
exports.log = function () { |
||||
|
process.stdout.write(format.apply(this, arguments) + '\n'); |
||||
|
}; |
||||
|
|
||||
|
|
||||
|
exports.info = exports.log; |
||||
|
|
||||
|
|
||||
|
exports.warn = function () { |
||||
|
writeError(format.apply(this, arguments) + '\n'); |
||||
|
}; |
||||
|
|
||||
|
|
||||
|
exports.error = exports.warn; |
||||
|
|
||||
|
|
||||
|
exports.dir = function(object){ |
||||
|
var util = require('util'); |
||||
|
process.stdout.write(util.inspect(object) + '\n'); |
||||
|
}; |
||||
|
|
||||
|
|
||||
|
var times = {}; |
||||
|
exports.time = function(label){ |
||||
|
times[label] = Date.now(); |
||||
|
}; |
||||
|
|
||||
|
|
||||
|
exports.timeEnd = function(label){ |
||||
|
var duration = Date.now() - times[label]; |
||||
|
exports.log('%s: %dms', label, duration); |
||||
|
}; |
||||
|
|
||||
|
|
||||
|
exports.trace = function(label){ |
||||
|
// TODO probably can to do this better with V8's debug object once that is
|
||||
|
// exposed.
|
||||
|
var err = new Error; |
||||
|
err.name = 'Trace'; |
||||
|
err.message = label || ''; |
||||
|
Error.captureStackTrace(err, arguments.callee); |
||||
|
console.error(err.stack); |
||||
|
}; |
||||
|
|
||||
|
|
||||
|
exports.assert = function(expression){ |
||||
|
if(!expression){ |
||||
|
var arr = Array.prototype.slice.call(arguments, 1); |
||||
|
process.assert(false, format.apply(this, arr)); |
||||
|
} |
||||
|
}; |
Loading…
Reference in new issue