mhl-dispatcher
Version:
A node dispatcher server for running and managing batch processes
88 lines (77 loc) • 2.53 kB
JavaScript
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);
});
};