log.js 4.59 KB
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 = {};

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,rawData)
{
    var data = {
        body : rawData.body,
        query : rawData.query,
        params : rawData.params
    };
    start = {
        session : "Session",
        cmd : cmdData,
        identity : "Identity"    
    };

    // console.log(start);
}

logger.addSuccessSummary = function (nodeData,cmdData,resultData)
{
    summary = {
        node : nodeData,
        cmd : cmdData,
        resultCode : resultData.resultCode,
        resultDesc : resultData.developerMessage,
        type : "success"      
    };
    summaryList.push(summary);
    // console.log(summary);
}

logger.addErrorSummary = function (nodeData,cmdData,resultData)
{
    summary = {
        node : nodeData,
        cmd : cmdData,
        resultCode : resultData.resultCode,
        resultDesc : resultData.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
            };
        } else {
            var raw = {
            };
        }

        detail.input = {
            node : node,
            cmd : cmd,
            type : type,
            rawData : raw,
            data : data
        };

        // console.log(detail.input);
    }
    else if(inputType == 'output')
    {
        detail.output = {
            node : node,
            cmd : cmd,
            type : type,
            rawData : rawData,
            data : data
        };

        // 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;




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();