UNPKG

mhl-dispatcher

Version:

A node dispatcher server for running and managing batch processes

88 lines (77 loc) 2.53 kB
var Log = require('log'), clc = require('cli-color'), db = require('./db.js'), fs = require('fs'), logger = {}, root = __dirname.replace('\\libs',''), logReader = new Log('debug', fs.createReadStream(root + '/log/server.log')), logWriter = new Log('debug', fs.createWriteStream(root + '/log/server.log')); module.exports = exports = logger; logger.group = ''; logger.server = null; logger.silent = false; logger.COLORS = { summary : clc.white, debug : clc.magenta, info : clc.green, notice : clc.blue, warning : clc.yellow.bold, error : clc.red.bold, critical : clc.red.bold, alert : clc.red.bold, emergency : clc.red.bold }; logger.TYPES = { SUMMARY : 'summary', DEBUG : 'debug', INFO : 'info', NOTICE : 'notice', WARNING : 'warning', ERROR : 'error', CRITICAL : 'critical', ALERT : 'alert', EMERGENCY : 'emergency' }; logger.serverLog = function(message, type){ var now = new Date(), server = logger.server; if(!server){ console.log(server); return; } //writing to the the log file logWriter[type](server.hostname + '['+ server.serverId +']: ' + server.current.funcName + '(' + server.current.funcState + ') - ' + message); //writing to the console console.log(clc.white.bold(now) + ' - ' + clc.magenta.bold(server.hostname) + '['+ clc.magentaBright(server.serverId) +']: ' + clc.yellow.bold(server.current.funcName) + '(' + logger.COLORS[type](server.current.funcState) + ') - ' + logger.COLORS[type](message)); }; logger.batchLog = function(severity, message){ var server = logger.server; if(!server){ console.log(server); return; } db.batchLog(server.current.batch, severity, message, logger.group, server.current.funcName, server.current.funcState, function(err, rowsAffected, parameters){ //if there is an error logging to the Batch Log tell the Server if(err){ server.current.funcState = 'db.batchLog: Error during log.'; logger.serverLog(err, logger.TYPES.ERROR); }else{ server.current.funcState = 'db.batchLog: Batch log complete.'; logger.serverLog('Oracle Batch Log complete.', logger.TYPES.DEBUG); } }); }; logger.fullLog = function(severity, message, type){ var server = logger.server; if(!server){ console.log(server); return; } logger.serverLog(message, type); logger.batchLog(severity, message); }; logger.viewLog = function(){ logReader.on('line', function(line){ console.log(line); }); };