var _ = require('./includes/underscore'); var _s = require("./includes/underscore.string"); var log = function() { if(arguments.length < 2) { throw 'Error: log(lvl, fmt, ...)'; } var args = Array.prototype.slice.call(arguments); var lvl = args.shift(); var args = _.map(args, function(x) { if(typeof x === 'object') { return JSON.stringify(x); } else { return x; } }); var now = new Date().toISOString(); var msg = _s.sprintf.apply(null, args); console.log(_s.sprintf('%s [%s] %s', now, lvl, msg)); } var debug = function() { var args = ['DEBUG'].concat(Array.prototype.slice.call(arguments)); log.apply(null, args); } var info = function() { var args = ['INFO'].concat(Array.prototype.slice.call(arguments)); log.apply(null, args); } var warn = function() { var args = ['WARN'].concat(Array.prototype.slice.call(arguments)); log.apply(null, args); } var error = function() { var args = ['ERROR'].concat(Array.prototype.slice.call(arguments)); log.apply(null, args); } var guid = (function() { function s4() { return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1); } return function() { return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4(); }; })(); module.exports.guid = guid; module.exports.log = log; module.exports.debug = debug; module.exports.info = info; module.exports.warn = warn; module.exports.error = error; module.exports._ = _; module.exports._s = _s;