diff --git a/core/bbs.js b/core/bbs.js index 58186af5..2ea975b1 100644 --- a/core/bbs.js +++ b/core/bbs.js @@ -218,7 +218,11 @@ function startListening(cb) { moduleUtil.loadModulesForCategory('servers', (err, module) => { if(err) { - logger.log.info(err); + if('EENIGMODDISABLED' === err.code) { + logger.log.debug(err.message); + } else { + logger.log.info( { err : err }, 'Failed loading module'); + } return; } @@ -228,14 +232,14 @@ function startListening(cb) { return; } - const moduleInst = new module.getModule(); - let server; - try { - server = moduleInst.createServer(); - } catch(e) { - logger.log.warn(e, 'Exception caught creating server!'); - return; - } + const moduleInst = new module.getModule(); + let server; + try { + server = moduleInst.createServer(); + } catch(e) { + logger.log.warn(e, 'Exception caught creating server!'); + return; + } // :TODO: handle maxConnections, e.g. conf.maxConnections diff --git a/core/logger.js b/core/logger.js index dd918375..47f465f7 100644 --- a/core/logger.js +++ b/core/logger.js @@ -2,7 +2,6 @@ 'use strict'; var bunyan = require('bunyan'); -var miscUtil = require('./misc_util.js'); var paths = require('path'); var fs = require('fs'); @@ -57,7 +56,8 @@ module.exports = { stream : ringBuffer, level : 'trace' }*/ - ] + ], + serializers: { err : bunyan.stdSerializers.err } // handle 'err' fields with stack/etc. }); } }; diff --git a/core/module_util.js b/core/module_util.js index e60d129a..651a2a8a 100644 --- a/core/module_util.js +++ b/core/module_util.js @@ -24,7 +24,9 @@ function loadModuleEx(options, cb) { const modConfig = _.isObject(Config[options.category]) ? Config[options.category][options.name] : null; if(_.isObject(modConfig) && false === modConfig.enabled) { - return cb(new Error(`Module "${options.name}" is disabled`)); + const err = new Error(`Module "${options.name}" is disabled`); + err.code = 'EENIGMODDISABLED'; + return cb(err); } // diff --git a/core/new_scan.js b/core/new_scan.js index b4879316..37dea421 100644 --- a/core/new_scan.js +++ b/core/new_scan.js @@ -165,12 +165,31 @@ function NewScanModule(options) { }, function displayMessageList(msgList) { if(msgList && msgList.length > 0) { - var nextModuleOpts = { + const nextModuleOpts = { extraArgs: { messageAreaTag : currentArea.areaTag, messageList : msgList, } }; + + // + // provide a serializer so we don't dump *huge* bits of information to the log + // due to the size of |messageList| + // https://github.com/trentm/node-bunyan/issues/189 + // + nextModuleOpts.extraArgs.toJSON = function() { + let logMsgList; + if(this.messageList.length <= 4) { + logMsgList = this.messageList; + } else { + logMsgList = this.messageList.slice(0, 2).concat(this.messageList.slice(-2)); + } + + return { + messageAreaTag : this.messageAreaTag, + partialMessageList : logMsgList, + }; + }; self.gotoMenu(config.newScanMessageList || 'newScanMessageList', nextModuleOpts); } else { @@ -221,13 +240,13 @@ NewScanModule.prototype.mciReady = function(mciData, cb) { }, function performCurrentStepScan(callback) { switch(self.currentStep) { - case 'messageConferences' : - self.newScanMessageConference( () => { - callback(null); // finished - }); + case 'messageConferences' : + self.newScanMessageConference( () => { + callback(null); // finished + }); break; - - default : return callback(null); + + default : return callback(null); } } ],