ee0f052e917af371ede81347ade6fa2881d97814
[motion2.git] / server / utils / client-side-logger.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x1040=['fs-extra','lodash','express-winston','path','util','fileLogger','safeTemplate','./mask-sensitive-data','maskSensitiveData','join','/var','log','client','name','ensureDir','catch','user','then','no-user','data','api','auth','set','use','logger','isEmpty','body','\x20body=%s','format','method','headers','x-forwarded-for','connection','remoteAddress','url','statusCode','role','inspect','device','agent_id','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)','other','agent_name'];(function(_0x33032e,_0x31411a){var _0x13316b=function(_0x2fb049){while(--_0x2fb049){_0x33032e['push'](_0x33032e['shift']());}};_0x13316b(++_0x31411a);}(_0x1040,0x12d));var _0x0104=function(_0x3c4062,_0x3767fc){_0x3c4062=_0x3c4062-0x0;var _0x3f5bf3=_0x1040[_0x3c4062];return _0x3f5bf3;};var fs=require(_0x0104('0x0'));var _=require(_0x0104('0x1'));var ewinston=require(_0x0104('0x2'));var path=require(_0x0104('0x3'));var util=require(_0x0104('0x4'));var fileLogger=require('./loggers')[_0x0104('0x5')];var safeTemplate=require('./safe-template')[_0x0104('0x6')];var maskSensitiveData=require(_0x0104('0x7'))[_0x0104('0x8')];function ClientSideLogger(){function _0x734e77(_0x864667){var _0x414f0a=path[_0x0104('0x9')](_0x0104('0xa'),_0x0104('0xb'),'xcally');var _0x4a2e50=path['join'](_0x0104('0xc'),_0x864667['role']+'-'+_0x864667[_0x0104('0xd')]);return fs[_0x0104('0xe')](path[_0x0104('0x9')](_0x414f0a,_0x4a2e50))['then'](function(){var _0x12c39e=fileLogger('client',path[_0x0104('0x9')](_0x414f0a,_0x4a2e50));return _0x12c39e;})[_0x0104('0xf')](function(_0x5f0772){throw _0x5f0772;});}this[_0x0104('0xb')]=function(_0x470e52,_0x41b5bc,_0x3fc2b0,_0x4c5279){return _0x734e77(_0x470e52[_0x0104('0x10')])[_0x0104('0x11')](function(_0x378096){var _0x3e49c4=_0x378096[_0x41b5bc];return _0x3e49c4;})[_0x0104('0x11')](function(_0x53b1b1){var _0x23ae8e=_0x470e52['user']?_0x470e52[_0x0104('0x10')]['id']:_0x0104('0x12');var _0xdb39be=_0x4c5279[_0x0104('0x13')];var _0x31c74a=_0x4c5279['timestamp'];var _0x1e4ec4=new Date(Number(_0x31c74a));return _0x53b1b1(_0x23ae8e,_0x1e4ec4,_0x3fc2b0,_0xdb39be);})[_0x0104('0xf')](function(_0x5f3b49){fileLogger('client')['error'](_0x5f3b49);});};}function setupLoggers(_0x21323c){return new Promise(function(_0x5ea7ca){var _0x5645ba=new ClientSideLogger();var _0x8b2c2c=fileLogger(_0x0104('0x14'));var _0x208b0f=fileLogger(_0x0104('0x15'));_0x21323c[_0x0104('0x16')]('client-side-logger',_0x5645ba);_0x21323c[_0x0104('0x17')](ewinston[_0x0104('0x18')]({'winstonInstance':_0x8b2c2c,'meta':![],'statusLevels':!![],'msg':function(_0x27888f,_0x203f57){var _0x1137a5='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s';if(!_[_0x0104('0x19')](_0x27888f[_0x0104('0x1a')])){_0x1137a5+=_0x0104('0x1b');var _0x238e16=_0x27888f[_0x0104('0x1a')];maskSensitiveData(_0x238e16);}return safeTemplate(util[_0x0104('0x1c')](_0x1137a5,_0x27888f[_0x0104('0x1d')],_0x27888f[_0x0104('0x1e')][_0x0104('0x1f')]?_0x27888f['headers'][_0x0104('0x1f')]:_0x27888f[_0x0104('0x20')][_0x0104('0x21')]||_0x27888f['ip'],_0x27888f[_0x0104('0x22')],_0x203f57[_0x0104('0x23')],_0x203f57['responseTime'],_0x27888f[_0x0104('0x10')]?_0x27888f[_0x0104('0x10')]['id']:null,_0x27888f['user']?_0x27888f[_0x0104('0x10')]['name']:null,_0x27888f[_0x0104('0x10')]?_0x27888f[_0x0104('0x10')][_0x0104('0x24')]:null,_0x238e16?util[_0x0104('0x25')](_0x238e16,![],null):''));}}));_0x21323c['use'](ewinston[_0x0104('0x18')]({'winstonInstance':_0x208b0f,'meta':![],'statusLevels':!![],'msg':function(_0x175229,_0x3574a0){var _0xe5610a='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s';if(_0x175229[_0x0104('0x1a')]&&_0x175229[_0x0104('0x1a')][_0x0104('0x26')]&&_0x175229[_0x0104('0x1a')][_0x0104('0x27')]){_0xe5610a=_0x0104('0x28');}return util[_0x0104('0x1c')](_0xe5610a,_0x175229[_0x0104('0x1d')],_0x175229[_0x0104('0x1e')][_0x0104('0x1f')]?_0x175229[_0x0104('0x1e')][_0x0104('0x1f')]:_0x175229['connection'][_0x0104('0x21')]||_0x175229['ip'],_0x175229[_0x0104('0x22')],_0x3574a0[_0x0104('0x23')],_0x3574a0['responseTime'],_0x175229['user']?_0x175229['user']['id']:null,_0x175229[_0x0104('0x10')]?_0x175229['user']['name']:null,_0x175229[_0x0104('0x10')]?_0x175229['user'][_0x0104('0x24')]:null,_0x175229[_0x0104('0x1a')]&&_0x175229[_0x0104('0x1a')]['device']?_0x175229['body']['device']:_0x0104('0x29'),_0x175229[_0x0104('0x1a')]&&_0x175229[_0x0104('0x1a')][_0x0104('0x27')]?_0x175229[_0x0104('0x1a')]['agent_id']:'',_0x175229[_0x0104('0x1a')]&&_0x175229[_0x0104('0x1a')][_0x0104('0x2a')]?_0x175229[_0x0104('0x1a')][_0x0104('0x2a')]:'');},'ignoreRoute':function(_0x49c868){var _0x105da0=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x105da0['test'](_0x49c868['url']);}}));return _0x5ea7ca();});}exports['setupLoggers']=setupLoggers;