diff --git a/config.js b/config.js index d71dd7624..f5ab15526 100644 --- a/config.js +++ b/config.js @@ -3,6 +3,7 @@ var defaultConfig = { // DEFAULT network (livenet or testnet) networkName: 'testnet', forceNetwork: false, + logLevel: 'debug', // DEFAULT unit: Bit unitName: 'bits', diff --git a/js/log.js b/js/log.js new file mode 100644 index 000000000..496a3e360 --- /dev/null +++ b/js/log.js @@ -0,0 +1,45 @@ +var config = require('../config'); + +var Logger = function(name) { + this.name = name || 'log'; + this.level = 2; +}; + +var levels = { + 'debug': 0, + 'info': 1, + 'log': 2, + 'warn': 3, + 'error': 4, + 'fatal': 5 +}; + +for (_level in levels) { + (function(level) { + Logger.prototype[level] = function() { + if (levels[level] >= levels[this.level]) { + var str = '[' + level + '] ' + this.name + ': ' + arguments[0], + extraArgs, + extraArgs = [].slice.call(arguments, 1); + if (console[level]) { + extraArgs.unshift(str); + console[level].apply(console, extraArgs); + } else { + if (extraArgs.length) { + str += JSON.stringify(extraArgs); + } + console.log(str); + } + } + }; + })(_level); +} + +Logger.prototype.setLevel = function(level) { + this.level = level; +} + +var logger = new Logger('copay'); +logger.setLevel(config.logLevel); + +module.exports.logger = logger; diff --git a/js/models/network/Async.js b/js/models/network/Async.js index 172133fae..4ba012614 100644 --- a/js/models/network/Async.js +++ b/js/models/network/Async.js @@ -2,6 +2,7 @@ var EventEmitter = require('events').EventEmitter; var bitcore = require('bitcore'); +var log = require('../../log'); var AuthMessage = bitcore.AuthMessage; var util = bitcore.util; var nodeUtil = require('util'); @@ -187,7 +188,7 @@ Network.prototype._onMessage = function(enc) { return; } - //console.log('receiving ' + JSON.stringify(payload)); + log.debug('receiving ' + JSON.stringify(payload)); var self = this; switch (payload.type) { @@ -234,8 +235,8 @@ Network.prototype._setupConnectionHandlers = function(cb) { }; Network.prototype._onError = function(err) { - console.log('RECV ERROR: ', err); - console.log(err.stack); + log.debug('RECV ERROR: ', err); + log.debug(err.stack); this.criticalError = err.message; }; @@ -348,7 +349,7 @@ Network.prototype.send = function(dest, payload, cb) { var to = dest[ii]; if (to == this.copayerId) continue; - //console.log('SEND to: ' + to, this.copayerId, payload); + log.debug('SEND to: ' + to, this.copayerId, payload); var message = this.encode(to, payload); this.socket.emit('message', message); }