d4931ac644862ce8c3b9d697f080f9df9c277d7b
[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 _0x71b9=['no-user','data','timestamp','error','api','auth','use','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','isEmpty','body','\x20body=%s','headers','x-forwarded-for','connection','remoteAddress','url','responseTime','inspect','%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)','format','other','agent_name','setupLoggers','fs-extra','express-winston','path','util','./loggers','./mask-sensitive-data','maskSensitiveData','join','/var','log','xcally','client','role','name','ensureDir','catch','user','then'];(function(_0x19e425,_0x7f53c0){var _0x220e1d=function(_0x824c8){while(--_0x824c8){_0x19e425['push'](_0x19e425['shift']());}};_0x220e1d(++_0x7f53c0);}(_0x71b9,0xfc));var _0x971b=function(_0x44883e,_0x4e1af1){_0x44883e=_0x44883e-0x0;var _0x5a541c=_0x71b9[_0x44883e];return _0x5a541c;};var fs=require(_0x971b('0x0'));var _=require('lodash');var ewinston=require(_0x971b('0x1'));var path=require(_0x971b('0x2'));var util=require(_0x971b('0x3'));var fileLogger=require(_0x971b('0x4'))['fileLogger'];var safeTemplate=require('./safe-template')['safeTemplate'];var maskSensitiveData=require(_0x971b('0x5'))[_0x971b('0x6')];function ClientSideLogger(){function _0xce1412(_0x1a22f6){var _0x2e5c90=path[_0x971b('0x7')](_0x971b('0x8'),_0x971b('0x9'),_0x971b('0xa'));var _0xfb4e4b=path[_0x971b('0x7')](_0x971b('0xb'),_0x1a22f6[_0x971b('0xc')]+'-'+_0x1a22f6[_0x971b('0xd')]);return fs[_0x971b('0xe')](path[_0x971b('0x7')](_0x2e5c90,_0xfb4e4b))['then'](function(){var _0x19ad50=fileLogger('client',path[_0x971b('0x7')](_0x2e5c90,_0xfb4e4b));return _0x19ad50;})[_0x971b('0xf')](function(_0x4e8298){throw _0x4e8298;});}this[_0x971b('0x9')]=function(_0x319e58,_0x18d867,_0x351db2,_0x9bc8b4){return _0xce1412(_0x319e58[_0x971b('0x10')])[_0x971b('0x11')](function(_0x3811fa){var _0x343e12=_0x3811fa[_0x18d867];return _0x343e12;})[_0x971b('0x11')](function(_0x5b486f){var _0x493d0a=_0x319e58[_0x971b('0x10')]?_0x319e58['user']['id']:_0x971b('0x12');var _0x2da014=_0x9bc8b4[_0x971b('0x13')];var _0x3653b5=_0x9bc8b4[_0x971b('0x14')];var _0x52c0ce=new Date(Number(_0x3653b5));return _0x5b486f(_0x493d0a,_0x52c0ce,_0x351db2,_0x2da014);})[_0x971b('0xf')](function(_0x5ac65c){fileLogger(_0x971b('0xb'))[_0x971b('0x15')](_0x5ac65c);});};}function setupLoggers(_0x5585b6){return new Promise(function(_0x596298){var _0xbf3e03=new ClientSideLogger();var _0x39004b=fileLogger(_0x971b('0x16'));var _0x54a019=fileLogger(_0x971b('0x17'));_0x5585b6['set']('client-side-logger',_0xbf3e03);_0x5585b6[_0x971b('0x18')](ewinston[_0x971b('0x19')]({'winstonInstance':_0x39004b,'meta':![],'statusLevels':!![],'msg':function(_0x5212ba,_0x498c14){var _0x45c829=_0x971b('0x1a');if(!_[_0x971b('0x1b')](_0x5212ba[_0x971b('0x1c')])){_0x45c829+=_0x971b('0x1d');var _0x52270e=_0x5212ba[_0x971b('0x1c')];maskSensitiveData(_0x52270e);}return safeTemplate(util['format'](_0x45c829,_0x5212ba['method'],_0x5212ba[_0x971b('0x1e')][_0x971b('0x1f')]?_0x5212ba[_0x971b('0x1e')]['x-forwarded-for']:_0x5212ba[_0x971b('0x20')][_0x971b('0x21')]||_0x5212ba['ip'],_0x5212ba[_0x971b('0x22')],_0x498c14['statusCode'],_0x498c14[_0x971b('0x23')],_0x5212ba[_0x971b('0x10')]?_0x5212ba['user']['id']:null,_0x5212ba['user']?_0x5212ba['user'][_0x971b('0xd')]:null,_0x5212ba[_0x971b('0x10')]?_0x5212ba[_0x971b('0x10')][_0x971b('0xc')]:null,_0x52270e?util[_0x971b('0x24')](_0x52270e,![],null):''));}}));_0x5585b6[_0x971b('0x18')](ewinston[_0x971b('0x19')]({'winstonInstance':_0x54a019,'meta':![],'statusLevels':!![],'msg':function(_0xa04359,_0x35f630){var _0x1d53ff=_0x971b('0x25');if(_0xa04359[_0x971b('0x1c')]&&_0xa04359[_0x971b('0x1c')][_0x971b('0x26')]&&_0xa04359[_0x971b('0x1c')][_0x971b('0x27')]){_0x1d53ff=_0x971b('0x28');}return util[_0x971b('0x29')](_0x1d53ff,_0xa04359['method'],_0xa04359['headers']['x-forwarded-for']?_0xa04359['headers'][_0x971b('0x1f')]:_0xa04359[_0x971b('0x20')]['remoteAddress']||_0xa04359['ip'],_0xa04359[_0x971b('0x22')],_0x35f630['statusCode'],_0x35f630[_0x971b('0x23')],_0xa04359[_0x971b('0x10')]?_0xa04359[_0x971b('0x10')]['id']:null,_0xa04359[_0x971b('0x10')]?_0xa04359['user'][_0x971b('0xd')]:null,_0xa04359['user']?_0xa04359[_0x971b('0x10')][_0x971b('0xc')]:null,_0xa04359[_0x971b('0x1c')]&&_0xa04359['body'][_0x971b('0x26')]?_0xa04359[_0x971b('0x1c')]['device']:_0x971b('0x2a'),_0xa04359[_0x971b('0x1c')]&&_0xa04359[_0x971b('0x1c')][_0x971b('0x27')]?_0xa04359[_0x971b('0x1c')][_0x971b('0x27')]:'',_0xa04359[_0x971b('0x1c')]&&_0xa04359[_0x971b('0x1c')][_0x971b('0x2b')]?_0xa04359[_0x971b('0x1c')][_0x971b('0x2b')]:'');},'ignoreRoute':function(_0x5b5813){var _0x44c3d9=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x44c3d9['test'](_0x5b5813[_0x971b('0x22')]);}}));return _0x596298();});}exports[_0x971b('0x2c')]=setupLoggers;