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