From a5fda98cdc5142e702876cacff5b7df50ed4f31c Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Wed, 20 Aug 2014 12:21:58 -0400 Subject: [PATCH] use winston for logging --- README.md | 2 +- app/controllers/socket.js | 17 +++----- config/config.js | 2 - insight.js | 50 ++-------------------- lib/logger.js | 2 + plugins/mailbox.js | 90 ++++++++++++++++++++++++++++++++++++++- 6 files changed, 101 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index abf3c08..a470313 100644 --- a/README.md +++ b/README.md @@ -88,7 +88,7 @@ INSIGHT_NETWORK [= 'livenet' | 'testnet'] INSIGHT_DB # Path where to store insight's internal DB. (defaults to $HOME/.insight) INSIGHT_SAFE_CONFIRMATIONS=6 # Nr. of confirmation needed to start caching transaction information INSIGHT_IGNORE_CACHE # True to ignore cache of spents in transaction, with more than INSIGHT_SAFE_CONFIRMATIONS confirmations. This is useful for tracking double spents for old transactions. -ENABLE_MESSAGE_BROKER # if "true" will enable message broker module +ENABLE_MAILBOX # if "true" will enable message broker module ``` diff --git a/app/controllers/socket.js b/app/controllers/socket.js index 47952f9..1c82ea7 100644 --- a/app/controllers/socket.js +++ b/app/controllers/socket.js @@ -3,24 +3,17 @@ // server-side socket behaviour var ios = null; // io is already taken in express var util = require('bitcore').util; +var logger = require('../../lib/logger'); -var verbose = false; -var log = function() { - if (verbose) { - console.log(arguments); - } -} - -module.exports.init = function(io_ext, config) { +module.exports.init = function(io_ext) { ios = io_ext; - verbose = config.verbose; if (ios) { // when a new socket connects ios.sockets.on('connection', function(socket) { - log('New connection from ' + socket.id); + logger.info('New connection from ' + socket.id); // when it subscribes, make it join the according room socket.on('subscribe', function(topic) { - log('subscribe to ' + topic); + logger.info('subscribe to ' + topic); socket.join(topic); }); @@ -76,7 +69,7 @@ module.exports.broadcastSyncInfo = function(historicSync) { var broadcastMessage = module.exports.broadcastMessage = function(message, socket) { if (ios) { var s = socket || ios.sockets.in(message.to); - log('sending message to ' + message.to); + logger.info('sending message to ' + message.to); s.emit('message', message); } diff --git a/config/config.js b/config/config.js index 35b3cf3..ca1fe4c 100644 --- a/config/config.js +++ b/config/config.js @@ -61,7 +61,6 @@ dataDir += network === 'testnet' ? 'testnet3' : ''; var safeConfirmations = process.env.INSIGHT_SAFE_CONFIRMATIONS || 6; var ignoreCache = process.env.INSIGHT_IGNORE_CACHE || 0; -var verbose = process.env.VERBOSE === 'true'; var bitcoindConf = { @@ -91,7 +90,6 @@ if (!fs.existsSync(db)) { module.exports = { enableMailbox: enableMailbox, - verbose: verbose, version: version, root: rootPath, publicPath: process.env.INSIGHT_PUBLIC_PATH || false, diff --git a/insight.js b/insight.js index 0b7a268..9dbbc8f 100755 --- a/insight.js +++ b/insight.js @@ -119,54 +119,12 @@ require('./config/routes')(expressApp); // socket.io var server = require('http').createServer(expressApp); -var ios = require('socket.io')(server); +var ios = require('socket.io')(server, config); +require('./app/controllers/socket.js').init(ios); // plugins -require('./app/controllers/socket.js').init(ios); -if (config.enableMessageBroker) { - var mdb = require('../../lib/MessageDb').default(); - - // when it requests sync, send him all pending messages - socket.on('sync', function(ts) { - log('Sync requested by ' + socket.id); - log(' from timestamp ' + ts); - var rooms = socket.rooms; - if (rooms.length !== 2) { - socket.emit('insight-error', 'Must subscribe with public key before syncing'); - return; - } - var to = rooms[1]; - var upper_ts = Math.round(microtime.now()); - log(' to timestamp ' + upper_ts); - mdb.getMessages(to, ts, upper_ts, function(err, messages) { - if (err) { - throw new Error('Couldn\'t get messages on sync request: ' + err); - } - log('\tFound ' + messages.length + ' message' + (messages.length !== 1 ? 's' : '')); - for (var i = 0; i < messages.length; i++) { - broadcastMessage(messages[i], socket); - } - }); - }); - - // when it sends a message, add it to db - socket.on('message', function(m) { - log('Message sent from ' + m.pubkey + ' to ' + m.to); - mdb.addMessage(m, function(err) { - if (err) { - throw new Error('Couldn\'t add message to database: ' + err); - } - }); - }); - - - // disconnect handler - socket.on('disconnect', function() { - log('disconnected ' + socket.id); - }); - - mdb.on('message', broadcastMessage); - +if (config.enableMailbox) { + require('./plugins/mailbox').init(ios, config.mailbox); } //Start the app by listening on diff --git a/lib/logger.js b/lib/logger.js index 779b46d..3946ace 100644 --- a/lib/logger.js +++ b/lib/logger.js @@ -1,5 +1,7 @@ var winston = require('winston'); + +winston.transports.console.level = 'debug'; winston.info('starting...') module.exports.logger=winston; diff --git a/plugins/mailbox.js b/plugins/mailbox.js index 441c5a1..3145f79 100644 --- a/plugins/mailbox.js +++ b/plugins/mailbox.js @@ -1,2 +1,90 @@ - var microtime = require('microtime'); +var mdb = require('../../lib/MessageDb').default(); + + +module.exports.init = function(ios, config) { + + ios.sockets.on('connection', function(socket) { + // when it requests sync, send him all pending messages + socket.on('sync', function(ts) { + log('Sync requested by ' + socket.id); + log(' from timestamp ' + ts); + var rooms = socket.rooms; + if (rooms.length !== 2) { + socket.emit('insight-error', 'Must subscribe with public key before syncing'); + return; + } + var to = rooms[1]; + var upper_ts = Math.round(microtime.now()); + log(' to timestamp ' + upper_ts); + mdb.getMessages(to, ts, upper_ts, function(err, messages) { + if (err) { + throw new Error('Couldn\'t get messages on sync request: ' + err); + } + log('\tFound ' + messages.length + ' message' + (messages.length !== 1 ? 's' : '')); + for (var i = 0; i < messages.length; i++) { + broadcastMessage(messages[i], socket); + } + }); + }); + + // when it sends a message, add it to db + socket.on('message', function(m) { + log('Message sent from ' + m.pubkey + ' to ' + m.to); + mdb.addMessage(m, function(err) { + if (err) { + throw new Error('Couldn\'t add message to database: ' + err); + } + }); + }); + + + // disconnect handler + socket.on('disconnect', function() { + log('disconnected ' + socket.id); + }); + + mdb.on('message', broadcastMessage); + // when it requests sync, send him all pending messages + socket.on('sync', function(ts) { + log('Sync requested by ' + socket.id); + log(' from timestamp ' + ts); + var rooms = socket.rooms; + if (rooms.length !== 2) { + socket.emit('insight-error', 'Must subscribe with public key before syncing'); + return; + } + var to = rooms[1]; + var upper_ts = Math.round(microtime.now()); + log(' to timestamp ' + upper_ts); + mdb.getMessages(to, ts, upper_ts, function(err, messages) { + if (err) { + throw new Error('Couldn\'t get messages on sync request: ' + err); + } + log('\tFound ' + messages.length + ' message' + (messages.length !== 1 ? 's' : '')); + for (var i = 0; i < messages.length; i++) { + broadcastMessage(messages[i], socket); + } + }); + }); + + // when it sends a message, add it to db + socket.on('message', function(m) { + log('Message sent from ' + m.pubkey + ' to ' + m.to); + mdb.addMessage(m, function(err) { + if (err) { + throw new Error('Couldn\'t add message to database: ' + err); + } + }); + }); + + + // disconnect handler + socket.on('disconnect', function() { + log('disconnected ' + socket.id); + }); + }); + + mdb.on('message', broadcastMessage); + +};