lib/Logger.js
var WBEventEmitter = require('wunderbits.core').WBEventEmitter;
var _ = require('lodash');
var colors = require('colors');
var start;
var _super = WBEventEmitter.prototype;
module.exports = WBEventEmitter.extend({
'pending': function (namespace, message, color) {
var self = this;
message += '...';
return self.log(namespace, message, color);
},
'pad': function (string, length) {
var self = this;
if (string.length < length) {
return self.pad(' ' + string, length);
}
return string;
},
'log': function (namespace, message, color) {
var self = this;
if (process.env.MUTE === 'true') return;
if (namespace === 'error') color = 'red';
namespace = self.pad('[' + namespace.toLowerCase() + '] ', 10);
message = namespace + message;
if (!self.lastNamespace || namespace !== self.lastNamespace) {
message = '\n' + message;
self.lastNamespace = namespace;
}
message = message.replace(process.cwd(), '');
if (color) {
message = message[color];
}
console.log(message);
},
'since': function (namespace, message, then, color) {
var self = this;
var time = self.getTime(then);
time = time ? ' +' + time : '';
color && (time = time[color]);
self.log(namespace, message + time, color);
},
'getTime': function (then) {
var now = new Date();
var difference = now - then;
var timeString = (difference/1000) + 's';
return difference && timeString || '';
},
'low': function (namespace, message) {
var self = this;
if (process.env.VERBOSE) {
self.pending(namespace, message, 'grey');
}
},
'lowSince': function (namespace, message, date) {
var self = this;
if (process.env.VERBOSE) {
self.since(namespace, message.grey, date, 'grey');
}
}
});