a34f05f207ed9129f3bec9babdefd2b7565079e5
[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 _0xf122=['headers','x-forwarded-for','remoteAddress','statusCode','responseTime','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','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)','connection','url','other','agent_name','test','setupLoggers','fs-extra','lodash','express-winston','util','fileLogger','./mask-sensitive-data','maskSensitiveData','join','/var','log','xcally','client','role','name','ensureDir','then','catch','user','no-user','timestamp','error','auth','use','logger','isEmpty','body','\x20body=%s','format','method'];(function(_0x1203f,_0x554bbc){var _0x365f0a=function(_0x3531d0){while(--_0x3531d0){_0x1203f['push'](_0x1203f['shift']());}};_0x365f0a(++_0x554bbc);}(_0xf122,0xbf));var _0x2f12=function(_0x58c483,_0x1876ac){_0x58c483=_0x58c483-0x0;var _0x277a6e=_0xf122[_0x58c483];return _0x277a6e;};var fs=require(_0x2f12('0x0'));var _=require(_0x2f12('0x1'));var ewinston=require(_0x2f12('0x2'));var path=require('path');var util=require(_0x2f12('0x3'));var fileLogger=require('./loggers')[_0x2f12('0x4')];var safeTemplate=require('./safe-template')['safeTemplate'];var maskSensitiveData=require(_0x2f12('0x5'))[_0x2f12('0x6')];function ClientSideLogger(){function _0x4d5101(_0x161973){var _0x17c30a=path[_0x2f12('0x7')](_0x2f12('0x8'),_0x2f12('0x9'),_0x2f12('0xa'));var _0x54e5bc=path['join'](_0x2f12('0xb'),_0x161973[_0x2f12('0xc')]+'-'+_0x161973[_0x2f12('0xd')]);return fs[_0x2f12('0xe')](path[_0x2f12('0x7')](_0x17c30a,_0x54e5bc))[_0x2f12('0xf')](function(){var _0x3edbbf=fileLogger('client',path['join'](_0x17c30a,_0x54e5bc));return _0x3edbbf;})[_0x2f12('0x10')](function(_0x4e249e){throw _0x4e249e;});}this[_0x2f12('0x9')]=function(_0x2f896a,_0x36a038,_0xc68fb9,_0xdb6dc){return _0x4d5101(_0x2f896a['user'])[_0x2f12('0xf')](function(_0xf5a2be){var _0x4d14da=_0xf5a2be[_0x36a038];return _0x4d14da;})[_0x2f12('0xf')](function(_0x53f8b5){var _0x626bcb=_0x2f896a[_0x2f12('0x11')]?_0x2f896a[_0x2f12('0x11')]['id']:_0x2f12('0x12');var _0x153886=_0xdb6dc['data'];var _0x3e6362=_0xdb6dc[_0x2f12('0x13')];var _0x4ef26d=new Date(Number(_0x3e6362));return _0x53f8b5(_0x626bcb,_0x4ef26d,_0xc68fb9,_0x153886);})[_0x2f12('0x10')](function(_0x19138d){fileLogger(_0x2f12('0xb'))[_0x2f12('0x14')](_0x19138d);});};}function setupLoggers(_0x3dd88a){return new Promise(function(_0x15ae15){var _0x2ff1db=new ClientSideLogger();var _0x34df30=fileLogger('api');var _0x46fd63=fileLogger(_0x2f12('0x15'));_0x3dd88a['set']('client-side-logger',_0x2ff1db);_0x3dd88a[_0x2f12('0x16')](ewinston[_0x2f12('0x17')]({'winstonInstance':_0x34df30,'meta':![],'statusLevels':!![],'msg':function(_0x12849d,_0x11fec4){var _0x90ceec='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s';if(!_[_0x2f12('0x18')](_0x12849d[_0x2f12('0x19')])){_0x90ceec+=_0x2f12('0x1a');var _0x2f276d=_0x12849d[_0x2f12('0x19')];maskSensitiveData(_0x2f276d);}return safeTemplate(util[_0x2f12('0x1b')](_0x90ceec,_0x12849d[_0x2f12('0x1c')],_0x12849d[_0x2f12('0x1d')][_0x2f12('0x1e')]?_0x12849d[_0x2f12('0x1d')][_0x2f12('0x1e')]:_0x12849d['connection'][_0x2f12('0x1f')]||_0x12849d['ip'],_0x12849d['url'],_0x11fec4[_0x2f12('0x20')],_0x11fec4[_0x2f12('0x21')],_0x12849d[_0x2f12('0x11')]?_0x12849d['user']['id']:null,_0x12849d[_0x2f12('0x11')]?_0x12849d[_0x2f12('0x11')][_0x2f12('0xd')]:null,_0x12849d[_0x2f12('0x11')]?_0x12849d['user'][_0x2f12('0xc')]:null,_0x2f276d?util['inspect'](_0x2f276d,![],null):''));}}));_0x3dd88a['use'](ewinston['logger']({'winstonInstance':_0x46fd63,'meta':![],'statusLevels':!![],'msg':function(_0x5d91ab,_0x11a45b){var _0x49e0cd=_0x2f12('0x22');if(_0x5d91ab[_0x2f12('0x19')]&&_0x5d91ab['body'][_0x2f12('0x23')]&&_0x5d91ab['body'][_0x2f12('0x24')]){_0x49e0cd=_0x2f12('0x25');}return util[_0x2f12('0x1b')](_0x49e0cd,_0x5d91ab[_0x2f12('0x1c')],_0x5d91ab[_0x2f12('0x1d')][_0x2f12('0x1e')]?_0x5d91ab[_0x2f12('0x1d')][_0x2f12('0x1e')]:_0x5d91ab[_0x2f12('0x26')]['remoteAddress']||_0x5d91ab['ip'],_0x5d91ab[_0x2f12('0x27')],_0x11a45b['statusCode'],_0x11a45b[_0x2f12('0x21')],_0x5d91ab[_0x2f12('0x11')]?_0x5d91ab[_0x2f12('0x11')]['id']:null,_0x5d91ab['user']?_0x5d91ab['user'][_0x2f12('0xd')]:null,_0x5d91ab[_0x2f12('0x11')]?_0x5d91ab[_0x2f12('0x11')][_0x2f12('0xc')]:null,_0x5d91ab[_0x2f12('0x19')]&&_0x5d91ab[_0x2f12('0x19')][_0x2f12('0x23')]?_0x5d91ab['body']['device']:_0x2f12('0x28'),_0x5d91ab[_0x2f12('0x19')]&&_0x5d91ab[_0x2f12('0x19')][_0x2f12('0x24')]?_0x5d91ab[_0x2f12('0x19')]['agent_id']:'',_0x5d91ab[_0x2f12('0x19')]&&_0x5d91ab[_0x2f12('0x19')][_0x2f12('0x29')]?_0x5d91ab['body'][_0x2f12('0x29')]:'');},'ignoreRoute':function(_0x9b207c){var _0x1c4e2a=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x1c4e2a[_0x2f12('0x2a')](_0x9b207c[_0x2f12('0x27')]);}}));return _0x15ae15();});}exports[_0x2f12('0x2b')]=setupLoggers;