var env = process.env.NODE_ENV || 'development'; var cfg = require('../../config/config.js').get(env); var conf = {}; conf.log = cfg.log; conf.log.projectName = cfg.app_name; var logg = require('commonlog-kb').init(conf); var logger = []; // var summaryList = []; // var start = {}; // var detail = {}; // var startTime; var mapLog = {}; logger.startlog = function (req,cmdData,session,identity) { var start = { session : session, cmd : cmdData, identity : identity }; mapLog[req.id].start = start; } logger.stat = function (msg){ logg.stat(msg); } logger.log = function (msg,type) { if(!type) type = 'debug'; type = type.toLowerCase(); switch(type) { case 'debug': logg.debug(msg); break; case 'info': logg.info(msg); break; case 'warn': logg.warn(msg); break; case 'error': logg.error(msg); break; default: logg.debug(msg); } console.log(msg); } logger.addSuccessSummary = function (req,nodeData,cmdData,resultCode,developerMessage) { summary = { node : undefinedToNull(nodeData), cmd : cmdData, resultCode : resultCode, resultDesc : developerMessage, type : "success" }; mapLog[req.id].summaryList.push(summary); // summaryList.push(summary); // console.log(summary); } logger.addErrorSummary = function (req,nodeData,cmdData,resultCode,developerMessage) { summary = { node : undefinedToNull(nodeData), cmd : cmdData, resultCode : resultCode, resultDesc : developerMessage, type : "error" }; // console.log(mapLog); mapLog[req.id].summaryList.push(summary); // summaryList.push(summary); // console.log(summary); } logger.logSummary = function (req,response) { var start = mapLog[req.id].start; var summaryList = mapLog[req.id].summaryList; var log = logg.summary(start.session,start.cmd,start.identity); var row; for (let index = 0; index < summaryList.length; index++) { row = summaryList[index]; if(row.type === "success"){ log.addSuccessBlock(row.node,row.cmd,row.resultCode,row.resultDesc); } else { log.addErrorBlock(row.node,row.cmd,row.resultCode,row.resultDesc); } } if(response){ log.end(response.resultCode,response.developerMessage) } else { log.end() } } var addlogDetailData = function(req,inputType,node,cmd,type,rawData,data){ if(inputType == 'input') { if(rawData) { var raw = { body : rawData.body, query : rawData.query, params : rawData.params, response : rawData.response }; } else { var raw = { }; } mapLog[req.id].detail.input = { node : undefinedToNull(node), cmd : cmd, type : type, rawData : raw, data : data }; // console.log(detail.input); } else if(inputType == 'output') { mapLog[req.id].detail.output = { node : undefinedToNull(node), cmd : cmd, type : type, rawData : rawData, data : data }; var start = mapLog[req.id].start; var detail = mapLog[req.id].detail; var log = logg.detail(start.session, start.cmd, start.identity); log.addInput( detail.input.node, detail.input.cmd, detail.input.type, detail.input.rawData, detail.input.data ); log.addOutput( detail.output.node, detail.output.cmd, detail.output.type, detail.output.rawData, detail.output.data ); log.end(); // console.log(detail.output); } } var logDetailData = { addInput : function(req,node,cmd,type,rawData,data){addlogDetailData(req,'input',node,cmd,type,rawData,data)}, addOutput : function(req,node,cmd,type,rawData,data){addlogDetailData(req,'output',node,cmd,type,rawData,data)} }; logger.logDetail = logDetailData; var undefinedToNull = function(data){ if(!data){ data = 'null'; } else { data = data; } return data; } logger.startEC = function(req) { var objectLog = { summaryList : [], start : {}, detail : {}, startTime : new Date() } mapLog[req.id] = objectLog; var newLine = "\r\n"; var messageRes = ''; var startTime = mapLog[req.id].startTime; // console.log(Object.keys(req)); // console.log(req.headers); // console.log(req.body); if(req.body) { if(typeof req.body === 'string') body = req.bod; else body = JSON.stringify(req.body); } var header = ""; if(req.headers) { if(typeof req.headers === 'string') header = req.headers; else header = JSON.stringify(req.headers); } messageRes += newLine+newLine+"#====> Incoming Message <====# "; messageRes += newLine+"Session : "+req.id; messageRes += newLine+"Header : "+header; messageRes += newLine+"Body : "+body; messageRes += newLine+"Time in : "+startTime.toISOString(); messageRes += newLine logg.debug(messageRes); // logger.log(messageRes); }; logger.endEC = function(req,res) { var newLine = "\r\n"; var messageRes = ''; var startTime = mapLog[req.id].startTime; var endTime = new Date(); // console.log(mapLog); var body = ""; if(res.resBody) { if(typeof res.resBody === 'string') body = res.resBody; else body = JSON.stringify(res.resBody); } var header = ""; if(res.req.headers) { if(typeof res.req.headers === 'string') header = res.req.headers; else header = JSON.stringify(res.req.headers); } messageRes += newLine+newLine+"#====> Outgoing Message <====# "; messageRes += newLine+"Session : "+req.id; messageRes += newLine+"Header : "+header; messageRes += newLine+"Body : "+body; messageRes += newLine+"Time out : "+endTime.toISOString(); messageRes += newLine+"Use times : "+Math.abs(endTime - startTime)+" ms"; // messageRes += ` // ________________________________________________________________________________________________________________________ // __________#####___________________________________#####___________________________________#####_________________________ // _________##____#_________________________________##____#_________________________________##____#________________________ // ________##______#_______________________________##______#_______________________________##______#_______________________ // ________#________#______________________________#________#______________________________#________#______________________ // _________________#######_________________________________#######_________________________________#######________________ // _________________#########_______________________________#########_______________________________#########______________ // __________##_____###########______________________##_____###########______________________##_____###########____________ // ___________#_____#############_____________________#_____#############_____________________#_____#############__________ // _________________##############___###____________________##############___###____________________##############___###___ // _______##________###############_##_##_________##________###############_##_##_________##________###############_##_##__ // ______###_______#################____#________###_______#################____#________###_______#################____#__ // ____#######___##________#########____#______#######___##________#########____#______#######___##________#########____#__ // ___#___####___#______________###_____#_____#___####___#______________###_____#_____#___####___#______________###_____#__ // ___#___##______#__#__________________#_____#___##______#__#__________________#_____#___##______#__#__________________#__ // ___#_________________________________#_____#_________________________________#_____#_________________________________#__ // ___#______________##_________________#_____#______________##_________________#_____#______________##_________________#__ // __#___________#_________________#___#_____#___________#_________________#___#_____#___________#_________________#___#___ // ___#__________#________________###__#______#__________#________________###__#______#__________#________________###__#___ // ____##_______#_________________#_###________##_______#_________________#_###________##_______#_________________#_###____ // _____#________________________##_____________#________________________##_____________#________________________##________ // _____#________________________#______________#________________________#______________#________________________#_________ // _____#_______________________#_______________#_______________________#_______________#_______________________#__________ // _____#______________________##_______________#______________________##_______________#______________________##__________ // _____##_____________________#________________##_____________________#________________##_____________________#___________ // ______#____________________#__________________#____________________#__________________#____________________#____________ // ______#___________________#___________________#___________________#___________________#___________________#_____________ // _______#_________________#_____________________#_________________#_____________________#_________________#______________ // _______##_______________#______________________##_______________#______________________##_______________#_______________ // ________##____________##________________________##____________##________________________##____________##________________ // __________##________###___________________________##________###___________________________##________###_________________ // ____________#########_______________________________#########_______________________________#########___________________ // ________________________________________________________________________________________________________________________ // ________________________________________________________________________________________________________________________ // `; logg.debug(messageRes); // logger.log(messageRes); messageRes += newLine }; module.exports = logger; // var s1 = logg.summary('session1', 'cmd', 'identity'); // s1.addSuccessBlock('node', 'a', '20000', 'resultDesc'); // s1.addSuccessBlock('node', 'b', 'resultCode', 'resultDesc'); // s1.addSuccessBlock('node1', 'c', 'resultCode', 'resultDesc'); // s1.addSuccessBlock('node1', 'cmd', 'resultCode', 'resultDesc'); // s1.addSuccessBlock('node1', 'cmd', 'resultCode', 'resultDesc 1'); // s1.addSuccessBlock('node1', 'cmd', 'resultCode', 'resultDesc 1'); // var s2 = logg.summary('session2', 'cmd', 'identity'); // s1.end('20000','sucesss'); // s2.end(); //type// - REQ, RES, RES_TIMEOUT, REQ_RETRY_1/1 // var ddd = logg.detail('session1', 'cmd', 'identity'); // ddd.addInput( 'node', 'cmd', 'type', 'rawData', 'data' ); // ddd.addOutput( 'node', 'cmd', 'type', 'rawData', 'data'); // ddd.end();