Blame view

ais-structure/src/modules/helper/log.js 11.5 KB
23001dfb   sumatek   update log
1
2
3
4
5
6
7
8
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);
c4a567d0   sumatek   merge
9
10
11
12
13
14
15
16
17
var logger = [];


// var summaryList = [];
// var start = {};
// var detail = {};
// var startTime;

var mapLog = {};
23001dfb   sumatek   update log
18

23001dfb   sumatek   update log
19

c4a567d0   sumatek   merge
20
21
22
23
24
25
26
27
28
29
30
31
32

logger.startlog = function (req,cmdData,session,identity)
{
     
   
    var start = {
        session : session,
        cmd : cmdData,
        identity : identity   
    };

    mapLog[req.id].start = start;
}
23001dfb   sumatek   update log
33

c39cf9da   Nattapon Wongpaet   update stat log
34
35
36
37
logger.stat = function (msg){
    logg.stat(msg);
}

095909b9   sumatek   update log
38
logger.log = function (msg,type)
23001dfb   sumatek   update log
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
{
    
    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);
    }
0ec6fba7   sumatek   update fix bug
62
63

    console.log(msg);
23001dfb   sumatek   update log
64
65
}

095909b9   sumatek   update log
66

c4a567d0   sumatek   merge
67
logger.addSuccessSummary = function (req,nodeData,cmdData,resultCode,developerMessage)
23001dfb   sumatek   update log
68
69
{
    summary = {
b253306b   Nattapon Wongpaet   update log get cu...
70
        node : undefinedToNull(nodeData),
23001dfb   sumatek   update log
71
        cmd : cmdData,
4bcb9ffa   Nattapon Wongpaet   update log vizcard
72
73
        resultCode : resultCode,
        resultDesc : developerMessage,
e2039477   Nattapon Wongpaet   update log
74
        type : "success"      
23001dfb   sumatek   update log
75
    };
c4a567d0   sumatek   merge
76
77
    mapLog[req.id].summaryList.push(summary);
    // summaryList.push(summary);
095909b9   sumatek   update log
78
    // console.log(summary);
23001dfb   sumatek   update log
79
80
}

c4a567d0   sumatek   merge
81
logger.addErrorSummary = function (req,nodeData,cmdData,resultCode,developerMessage)
e2039477   Nattapon Wongpaet   update log
82
83
{
    summary = {
b253306b   Nattapon Wongpaet   update log get cu...
84
        node : undefinedToNull(nodeData),
e2039477   Nattapon Wongpaet   update log
85
        cmd : cmdData,
4bcb9ffa   Nattapon Wongpaet   update log vizcard
86
87
        resultCode : resultCode,
        resultDesc : developerMessage,
e2039477   Nattapon Wongpaet   update log
88
89
        type : "error"       
    };
c4a567d0   sumatek   merge
90
91
92
    // console.log(mapLog);
    mapLog[req.id].summaryList.push(summary);
    // summaryList.push(summary);
e2039477   Nattapon Wongpaet   update log
93
94
95
    // console.log(summary);
}

c4a567d0   sumatek   merge
96
logger.logSummary = function (req,response)
23001dfb   sumatek   update log
97
{
c4a567d0   sumatek   merge
98
99
100
101
    
    var start = mapLog[req.id].start;
    var summaryList = mapLog[req.id].summaryList;

c39cf9da   Nattapon Wongpaet   update stat log
102
    var log = logg.summary(start.session,start.cmd,start.identity);
23001dfb   sumatek   update log
103
104
    var row;
    for (let index = 0; index < summaryList.length; index++) {
095909b9   sumatek   update log
105
        row = summaryList[index];
e2039477   Nattapon Wongpaet   update log
106
107
108
109
110
        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);
        }
095909b9   sumatek   update log
111
    }
50ad7d6d   Nattapon Wongpaet   update get vizcar...
112

53004544   Nattapon Wongpaet   update customer
113
114
115
116
117
    if(response){
        log.end(response.resultCode,response.developerMessage)
    } else {
        log.end()
    }
095909b9   sumatek   update log
118
}
23001dfb   sumatek   update log
119

c4a567d0   sumatek   merge
120
var addlogDetailData = function(req,inputType,node,cmd,type,rawData,data){
095909b9   sumatek   update log
121
122
    if(inputType == 'input')
    {
e2039477   Nattapon Wongpaet   update log
123
        if(rawData)
23001dfb   sumatek   update log
124
        {
e2039477   Nattapon Wongpaet   update log
125
            var raw = {
095909b9   sumatek   update log
126
127
                body : rawData.body,
                query : rawData.query,
a55a3d02   Nattapon Wongpaet   update post custo...
128
129
                params : rawData.params,
                response : rawData.response
095909b9   sumatek   update log
130
            };
e2039477   Nattapon Wongpaet   update log
131
        } else {
50ad7d6d   Nattapon Wongpaet   update get vizcar...
132
            var raw = { 
e2039477   Nattapon Wongpaet   update log
133
            };
23001dfb   sumatek   update log
134
        }
095909b9   sumatek   update log
135

c4a567d0   sumatek   merge
136
        mapLog[req.id].detail.input = {
b253306b   Nattapon Wongpaet   update log get cu...
137
            node : undefinedToNull(node),
095909b9   sumatek   update log
138
139
            cmd : cmd,
            type : type,
e2039477   Nattapon Wongpaet   update log
140
            rawData : raw,
095909b9   sumatek   update log
141
142
143
            data : data
        };

c4a567d0   sumatek   merge
144

095909b9   sumatek   update log
145
146
147
148
        // console.log(detail.input);
    }
    else if(inputType == 'output')
    {
c4a567d0   sumatek   merge
149
150
       
        mapLog[req.id].detail.output = {
b253306b   Nattapon Wongpaet   update log get cu...
151
            node : undefinedToNull(node),
095909b9   sumatek   update log
152
153
154
155
156
157
            cmd : cmd,
            type : type,
            rawData : rawData,
            data : data
        };

c4a567d0   sumatek   merge
158
159
        var start = mapLog[req.id].start;
        var detail = mapLog[req.id].detail;
50ad7d6d   Nattapon Wongpaet   update get vizcar...
160
161
162
163
        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();
095909b9   sumatek   update log
164
        // console.log(detail.output);
23001dfb   sumatek   update log
165
    }
23001dfb   sumatek   update log
166
167
}

095909b9   sumatek   update log
168
var logDetailData = {
c4a567d0   sumatek   merge
169
170
171
    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)}
    
095909b9   sumatek   update log
172
173
174
175
};

logger.logDetail = logDetailData;

b253306b   Nattapon Wongpaet   update log get cu...
176
177
178
179
180
181
182
183
184
185
var undefinedToNull = function(data){
    if(!data){
        data = 'null';
    } else {
        data = data;
    }

    return data;
}

c4a567d0   sumatek   merge
186
187


05183f06   sumatek   update log
188
189
logger.startEC = function(req)
{
c4a567d0   sumatek   merge
190
191
192
193
    var objectLog = {
        summaryList : [],
        start : {},
        detail : {},
34fdaca2   sumatek   fix bug log usetime
194
        startTime : new Date()
c4a567d0   sumatek   merge
195
    }
05183f06   sumatek   update log
196

05183f06   sumatek   update log
197
    
c4a567d0   sumatek   merge
198
    mapLog[req.id] = objectLog;
05183f06   sumatek   update log
199

c4a567d0   sumatek   merge
200
201
    var newLine = "\r\n";
    var messageRes = '';
34fdaca2   sumatek   fix bug log usetime
202
    var startTime = mapLog[req.id].startTime;
05183f06   sumatek   update log
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225

    // 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 <====# ";
c4a567d0   sumatek   merge
226
    messageRes += newLine+"Session : "+req.id;
05183f06   sumatek   update log
227
228
229
230
    messageRes += newLine+"Header : "+header;
    messageRes += newLine+"Body : "+body;
    messageRes += newLine+"Time in : "+startTime.toISOString();
    messageRes += newLine
095909b9   sumatek   update log
231

c4a567d0   sumatek   merge
232
233
    logg.debug(messageRes);
    // logger.log(messageRes);
05183f06   sumatek   update log
234
235
};

c4a567d0   sumatek   merge
236
logger.endEC = function(req,res)
05183f06   sumatek   update log
237
238
239
240
{
   
    var newLine = "\r\n";
    var messageRes = '';
c4a567d0   sumatek   merge
241
    var startTime = mapLog[req.id].startTime;
05183f06   sumatek   update log
242
    var endTime = new Date();
c4a567d0   sumatek   merge
243
    
05183f06   sumatek   update log
244

c4a567d0   sumatek   merge
245
    // console.log(mapLog);
05183f06   sumatek   update log
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265

    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 <====# ";
c4a567d0   sumatek   merge
266
    messageRes += newLine+"Session : "+req.id;
05183f06   sumatek   update log
267
268
269
270
271
272
    messageRes += newLine+"Header : "+header;
    messageRes += newLine+"Body : "+body;
    messageRes += newLine+"Time out : "+endTime.toISOString();
    messageRes += newLine+"Use times : "+Math.abs(endTime - startTime)+" ms";


27aed231   Nattapon Wongpaet   update post membe...
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
    // messageRes += `
    // ________________________________________________________________________________________________________________________
    // __________#####___________________________________#####___________________________________#####_________________________
    // _________##____#_________________________________##____#_________________________________##____#________________________
    // ________##______#_______________________________##______#_______________________________##______#_______________________
    // ________#________#______________________________#________#______________________________#________#______________________
    // _________________#######_________________________________#######_________________________________#######________________
    // _________________#########_______________________________#########_______________________________#########______________
    // __________##_____###########______________________##_____###########______________________##_____###########____________
    // ___________#_____#############_____________________#_____#############_____________________#_____#############__________
    // _________________##############___###____________________##############___###____________________##############___###___
    // _______##________###############_##_##_________##________###############_##_##_________##________###############_##_##__
    // ______###_______#################____#________###_______#################____#________###_______#################____#__
    // ____#######___##________#########____#______#######___##________#########____#______#######___##________#########____#__
    // ___#___####___#______________###_____#_____#___####___#______________###_____#_____#___####___#______________###_____#__
    // ___#___##______#__#__________________#_____#___##______#__#__________________#_____#___##______#__#__________________#__
    // ___#_________________________________#_____#_________________________________#_____#_________________________________#__
    // ___#______________##_________________#_____#______________##_________________#_____#______________##_________________#__
    // __#___________#_________________#___#_____#___________#_________________#___#_____#___________#_________________#___#___
    // ___#__________#________________###__#______#__________#________________###__#______#__________#________________###__#___
    // ____##_______#_________________#_###________##_______#_________________#_###________##_______#_________________#_###____
    // _____#________________________##_____________#________________________##_____________#________________________##________
    // _____#________________________#______________#________________________#______________#________________________#_________
    // _____#_______________________#_______________#_______________________#_______________#_______________________#__________
    // _____#______________________##_______________#______________________##_______________#______________________##__________
    // _____##_____________________#________________##_____________________#________________##_____________________#___________
    // ______#____________________#__________________#____________________#__________________#____________________#____________
    // ______#___________________#___________________#___________________#___________________#___________________#_____________
    // _______#_________________#_____________________#_________________#_____________________#_________________#______________
    // _______##_______________#______________________##_______________#______________________##_______________#_______________
    // ________##____________##________________________##____________##________________________##____________##________________
    // __________##________###___________________________##________###___________________________##________###_________________
    // ____________#########_______________________________#########_______________________________#########___________________
    // ________________________________________________________________________________________________________________________
05183f06   sumatek   update log
307
    
27aed231   Nattapon Wongpaet   update post membe...
308
309
    // ________________________________________________________________________________________________________________________
    // `;
05183f06   sumatek   update log
310
    
c4a567d0   sumatek   merge
311
312
    logg.debug(messageRes);
    // logger.log(messageRes);
05183f06   sumatek   update log
313
314
    messageRes += newLine
};
095909b9   sumatek   update log
315
316


23001dfb   sumatek   update log
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
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
095909b9   sumatek   update log
335
336
337
338
// var ddd = logg.detail('session1', 'cmd', 'identity');
// ddd.addInput( 'node', 'cmd', 'type', 'rawData', 'data' );
// ddd.addOutput( 'node', 'cmd', 'type', 'rawData', 'data');
// ddd.end();