SutisLogSummary.js 2.06 KB
var log4js = require('log4js');
log4js.configure('./config/log4js.json');

var log = log4js.getLogger('serverLog');
var stat = log4js.getLogger('statLog');
var alarm = log4js.getLogger('alarmLog');
var detail = log4js.getLogger('datailLog');
var summary = log4js.getLogger('summaryLog');

var dateFMT = 'yyyymmdd HH:MM:ss';
var dateFormat = require('dateformat');
    

var l = {};
l.debug = function(_log){
    log.debug(_log);
}
l.info = function(_log){
    log.info(_log);
}
l.warn = function(_log){
    log.warn(_log);
}
l.error = function(_log){
    log.error(_log);
}
l.stat = function(statName){
    stat.info(statName);
}
l.alarm = function(alarmName){
    alarm.info(alarmName);
}
l.detail = function(appDetail){
    detail.info(appDetail);
}

l.summary = function(session, cmd, identity, resultCode, resultDescription){
    var summaryLog = {
        requestTime: new Date(),
        session: session,
        initInvoke: '', //only equinox platform
        cmd: cmd,
        identity: identity,
        resultCode: resultCode,
        resultDescription: resultDescription,
        blockDetail: [],
            
        addSuccessBlock: function(node, cmd, statusCode, detail){
            this.blockDetail.push('['+ node+'; '+cmd+'(1); ['+ statusCode+'; '+detail+'(1)]]');
        },

        addErrorBlock: function(node, cmd, statusCode, detail, errorDetail){
            this.blockDetail.push('['+ node+'; '+cmd+'(1); ['+ statusCode+'; '+detail+'(1)]]');     
        },

        flush : function(){
            var endTime = new Date();

            var txt = dateFormat(this.requestTime, dateFMT) + '|';
            txt += this.session +'|';
            txt += this.initInvoke +'|'
            txt += this.cmd +'|'
            txt += this.identity +'|'
            txt += this.resultCode +'|'
            txt += this.resultDescription +'|'
            txt += this.blockDetail +'|'
            txt += dateFormat(endTime, dateFMT) +'|'
            txt += (endTime.getTime() - this.requestTime.getTime());

            summary.info(txt);
        }
    };
    return summaryLog;
}
module.exports = l;