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); // wait log stats // logg.stat('stat_name'); var logger = []; var summaryList = []; var start = {}; var detail = {}; var startTime; 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.startlog = function (cmdData,session,identity) { start = { session : session, cmd : cmdData, identity : identity }; } logger.addSuccessSummary = function (nodeData,cmdData,resultCode,developerMessage) { summary = { node : undefinedToNull(nodeData), cmd : cmdData, resultCode : resultCode, resultDesc : developerMessage, type : "success" }; summaryList.push(summary); // console.log(summary); } logger.addErrorSummary = function (nodeData,cmdData,resultCode,developerMessage) { summary = { node : undefinedToNull(nodeData), cmd : cmdData, resultCode : resultCode, resultDesc : developerMessage, type : "error" }; summaryList.push(summary); // console.log(summary); } logger.logSummary = function (response) { 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(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 = { }; } detail.input = { node : undefinedToNull(node), cmd : cmd, type : type, rawData : raw, data : data }; // console.log(detail.input); } else if(inputType == 'output') { detail.output = { node : undefinedToNull(node), cmd : cmd, type : type, rawData : rawData, data : data }; 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(node,cmd,type,rawData,data){addlogDetailData('input',node,cmd,type,rawData,data)}, addOutput : function(node,cmd,type,rawData,data){addlogDetailData('output',node,cmd,type,rawData,data)} // write : function () // { // 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(); // } }; logger.logDetail = logDetailData; var undefinedToNull = function(data){ if(!data){ data = 'null'; } else { data = data; } return data; } logger.startEC = function(req) { var newLine = "\r\n"; var messageRes = ''; startTime = new Date(); // if(!mapTime[req.headers.host]) // { // mapTime[req.headers.host] // } // 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+"Header : "+header; messageRes += newLine+"Body : "+body; messageRes += newLine+"Time in : "+startTime.toISOString(); messageRes += newLine logger.log(messageRes); }; logger.endEC = function(res) { var newLine = "\r\n"; var messageRes = ''; var endTime = new Date(); 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+"Header : "+header; messageRes += newLine+"Body : "+body; messageRes += newLine+"Time out : "+endTime.toISOString(); messageRes += newLine+"Use times : "+Math.abs(endTime - startTime)+" ms"; // 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();