Blame view

ais-structure/src/modules/helper/log.js 11.9 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
{
    function getErrorObject(){
        try { throw Error('') } catch(err) { return err; }
    }

    var err = getErrorObject();
    var caller_line = err.stack.split("\n")[4];
    var index = caller_line.indexOf("at ");
    var clean = caller_line.slice(index+2, caller_line.length);
    var focus = clean.split('\\');
    var line = focus[focus.length-1].slice(0, -1).split(":");
    
    msg = line[0]+'|'+line[1]+'|'+line[2]+'| '+msg;

    if(!type)
        type = 'debug';

    type = type.toLowerCase();

    switch(type) {
        case 'debug':
            logg.debug(msg);
            break;
0ec6fba7   sumatek   update fix bug
62
63
        case 'info':
            logg.info(msg);
23001dfb   sumatek   update log
64
65
            break;
        case 'warn':
095909b9   sumatek   update log
66
            logg.warn(msg);
c4a567d0   sumatek   merge
67
            break;
23001dfb   sumatek   update log
68
69
        case 'error':
            logg.error(msg);
b253306b   Nattapon Wongpaet   update log get cu...
70
            break;
23001dfb   sumatek   update log
71
        default:
4bcb9ffa   Nattapon Wongpaet   update log vizcard
72
73
            logg.debug(msg);
    }
e2039477   Nattapon Wongpaet   update log
74

23001dfb   sumatek   update log
75
    
c4a567d0   sumatek   merge
76
77
    
   
095909b9   sumatek   update log
78
    
23001dfb   sumatek   update log
79
80
    
    console.log(msg);
c4a567d0   sumatek   merge
81
}
e2039477   Nattapon Wongpaet   update log
82
83


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

c4a567d0   sumatek   merge
98
99
100
101
logger.addErrorSummary = function (req,nodeData,cmdData,resultCode,developerMessage)
{
    summary = {
        node : undefinedToNull(nodeData),
c39cf9da   Nattapon Wongpaet   update stat log
102
        cmd : cmdData,
23001dfb   sumatek   update log
103
104
        resultCode : resultCode,
        resultDesc : developerMessage,
095909b9   sumatek   update log
105
        type : "error"       
e2039477   Nattapon Wongpaet   update log
106
107
108
109
110
    };
    // console.log(mapLog);
    mapLog[req.id].summaryList.push(summary);
    // summaryList.push(summary);
    // console.log(summary);
095909b9   sumatek   update log
111
}
50ad7d6d   Nattapon Wongpaet   update get vizcar...
112

53004544   Nattapon Wongpaet   update customer
113
114
115
116
117
logger.logSummary = function (req,response)
{
    
    var start = mapLog[req.id].start;
    var summaryList = mapLog[req.id].summaryList;
095909b9   sumatek   update log
118

23001dfb   sumatek   update log
119
    var log = logg.summary(start.session,start.cmd,start.identity);
c4a567d0   sumatek   merge
120
    var row;
095909b9   sumatek   update log
121
122
    for (let index = 0; index < summaryList.length; index++) {
        row = summaryList[index];
e2039477   Nattapon Wongpaet   update log
123
        if(row.type === "success"){
23001dfb   sumatek   update log
124
            log.addSuccessBlock(row.node,row.cmd,row.resultCode,row.resultDesc);
e2039477   Nattapon Wongpaet   update log
125
        } else {
095909b9   sumatek   update log
126
127
            log.addErrorBlock(row.node,row.cmd,row.resultCode,row.resultDesc);
        }
a55a3d02   Nattapon Wongpaet   update post custo...
128
129
    }

095909b9   sumatek   update log
130
    if(response){
e2039477   Nattapon Wongpaet   update log
131
        log.end(response.resultCode,response.developerMessage)
50ad7d6d   Nattapon Wongpaet   update get vizcar...
132
    } else {
e2039477   Nattapon Wongpaet   update log
133
        log.end()
23001dfb   sumatek   update log
134
    }
095909b9   sumatek   update log
135
}
c4a567d0   sumatek   merge
136

b253306b   Nattapon Wongpaet   update log get cu...
137
var addlogDetailData = function(req,inputType,node,cmd,type,rawData,data){
095909b9   sumatek   update log
138
139
    if(inputType == 'input')
    {
e2039477   Nattapon Wongpaet   update log
140
        if(rawData)
095909b9   sumatek   update log
141
142
143
        {
            var raw = {
                body : rawData.body,
c4a567d0   sumatek   merge
144
                query : rawData.query,
095909b9   sumatek   update log
145
146
147
148
                params : rawData.params,
                response : rawData.response
            };
        } else {
c4a567d0   sumatek   merge
149
150
            var raw = { 
            };
b253306b   Nattapon Wongpaet   update log get cu...
151
        }
095909b9   sumatek   update log
152
153
154
155
156
157

        mapLog[req.id].detail.input = {
            node : undefinedToNull(node),
            cmd : cmd,
            type : type,
            rawData : raw,
c4a567d0   sumatek   merge
158
159
            data : data
        };
50ad7d6d   Nattapon Wongpaet   update get vizcar...
160
161
162
163


        // console.log(detail.input);
    }
095909b9   sumatek   update log
164
    else if(inputType == 'output')
23001dfb   sumatek   update log
165
    {
23001dfb   sumatek   update log
166
167
       
        mapLog[req.id].detail.output = {
095909b9   sumatek   update log
168
            node : undefinedToNull(node),
c4a567d0   sumatek   merge
169
170
171
            cmd : cmd,
            type : type,
            rawData : rawData,
095909b9   sumatek   update log
172
173
174
175
            data : data
        };

        var start = mapLog[req.id].start;
b253306b   Nattapon Wongpaet   update log get cu...
176
177
178
179
180
181
182
183
184
185
        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 = {
c4a567d0   sumatek   merge
186
187
    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)}
05183f06   sumatek   update log
188
189
    
};
c4a567d0   sumatek   merge
190
191
192
193

logger.logDetail = logDetailData;

var undefinedToNull = function(data){
34fdaca2   sumatek   fix bug log usetime
194
    if(!data){
c4a567d0   sumatek   merge
195
        data = 'null';
05183f06   sumatek   update log
196
    } else {
05183f06   sumatek   update log
197
        data = data;
c4a567d0   sumatek   merge
198
    }
05183f06   sumatek   update log
199

c4a567d0   sumatek   merge
200
201
    return data;
}
34fdaca2   sumatek   fix bug log usetime
202

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


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)
c4a567d0   sumatek   merge
226
    {
05183f06   sumatek   update log
227
228
229
230
        if(typeof req.body === 'string')
            body = req.bod;
        else
            body = JSON.stringify(req.body);
095909b9   sumatek   update log
231
    }
c4a567d0   sumatek   merge
232
233

    var header = "";
05183f06   sumatek   update log
234
235
    if(req.headers)
    {
c4a567d0   sumatek   merge
236
        if(typeof req.headers === 'string')
05183f06   sumatek   update log
237
238
239
240
            header = req.headers;
        else
            header = JSON.stringify(req.headers);
    }
c4a567d0   sumatek   merge
241

05183f06   sumatek   update log
242
    messageRes += newLine+newLine+"#====> Incoming Message <====# ";
c4a567d0   sumatek   merge
243
    messageRes += newLine+"Session : "+req.id;
05183f06   sumatek   update log
244
    messageRes += newLine+"Header : "+header;
c4a567d0   sumatek   merge
245
    messageRes += newLine+"Body : "+body;
05183f06   sumatek   update log
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
    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)
c4a567d0   sumatek   merge
266
    {
05183f06   sumatek   update log
267
268
269
270
271
272
        if(typeof res.resBody === 'string')
            body = res.resBody;
        else
            body = JSON.stringify(res.resBody);
    }

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
    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 += `
    // ________________________________________________________________________________________________________________________
    // __________#####___________________________________#####___________________________________#####_________________________
    // _________##____#_________________________________##____#_________________________________##____#________________________
    // ________##______#_______________________________##______#_______________________________##______#_______________________
    // ________#________#______________________________#________#______________________________#________#______________________
    // _________________#######_________________________________#######_________________________________#######________________
    // _________________#########_______________________________#########_______________________________#########______________
    // __________##_____###########______________________##_____###########______________________##_____###########____________
    // ___________#_____#############_____________________#_____#############_____________________#_____#############__________
    // _________________##############___###____________________##############___###____________________##############___###___
    // _______##________###############_##_##_________##________###############_##_##_________##________###############_##_##__
    // ______###_______#################____#________###_______#################____#________###_______#################____#__
    // ____#######___##________#########____#______#######___##________#########____#______#######___##________#########____#__
    // ___#___####___#______________###_____#_____#___####___#______________###_____#_____#___####___#______________###_____#__
    // ___#___##______#__#__________________#_____#___##______#__#__________________#_____#___##______#__#__________________#__
    // ___#_________________________________#_____#_________________________________#_____#_________________________________#__
05183f06   sumatek   update log
307
    // ___#______________##_________________#_____#______________##_________________#_____#______________##_________________#__
27aed231   Nattapon Wongpaet   update post membe...
308
309
    // __#___________#_________________#___#_____#___________#_________________#___#_____#___________#_________________#___#___
    // ___#__________#________________###__#______#__________#________________###__#______#__________#________________###__#___
05183f06   sumatek   update log
310
    // ____##_______#_________________#_###________##_______#_________________#_###________##_______#_________________#_###____
c4a567d0   sumatek   merge
311
312
    // _____#________________________##_____________#________________________##_____________#________________________##________
    // _____#________________________#______________#________________________#______________#________________________#_________
05183f06   sumatek   update log
313
314
    // _____#_______________________#_______________#_______________________#_______________#_______________________#__________
    // _____#______________________##_______________#______________________##_______________#______________________##__________
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
    // ______#___________________#___________________#___________________#___________________#___________________#_____________
    // _______#_________________#_____________________#_________________#_____________________#_________________#______________
    // _______##_______________#______________________##_______________#______________________##_______________#_______________
    // ________##____________##________________________##____________##________________________##____________##________________
    // __________##________###___________________________##________###___________________________##________###_________________
    // ____________#########_______________________________#########_______________________________#########___________________
    // ________________________________________________________________________________________________________________________
    
    // ________________________________________________________________________________________________________________________
    // `;
    
    logg.debug(messageRes);
    // logger.log(messageRes);
    messageRes += newLine
};


module.exports = logger;
095909b9   sumatek   update log
335
336
337
338



// var s1 = logg.summary('session1', 'cmd', 'identity');