d5ff6f35e6760a713b6fd1821d586545ff29e87f
[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 _0x4e8f=['body','\x20body=%s','format','method','headers','x-forwarded-for','remoteAddress','url','statusCode','responseTime','name','inspect','use','%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','other','agent_name','test','setupLoggers','lodash','express-winston','path','util','fileLogger','./safe-template','./mask-sensitive-data','join','/var','log','xcally','client','role','then','catch','user','no-user','data','timestamp','error','api','auth','client-side-logger','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','isEmpty'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x4e8f,0x136));var _0xf4e8=function(_0x541486,_0x58b627){_0x541486=_0x541486-0x0;var _0xe75ae0=_0x4e8f[_0x541486];return _0xe75ae0;};var fs=require('fs-extra');var _=require(_0xf4e8('0x0'));var ewinston=require(_0xf4e8('0x1'));var path=require(_0xf4e8('0x2'));var util=require(_0xf4e8('0x3'));var fileLogger=require('./loggers')[_0xf4e8('0x4')];var safeTemplate=require(_0xf4e8('0x5'))['safeTemplate'];var maskSensitiveData=require(_0xf4e8('0x6'))['maskSensitiveData'];function ClientSideLogger(){function _0x38e4b6(_0xac7fec){var _0x156053=path[_0xf4e8('0x7')](_0xf4e8('0x8'),_0xf4e8('0x9'),_0xf4e8('0xa'));var _0x330bb3=path['join'](_0xf4e8('0xb'),_0xac7fec[_0xf4e8('0xc')]+'-'+_0xac7fec['name']);return fs['ensureDir'](path[_0xf4e8('0x7')](_0x156053,_0x330bb3))[_0xf4e8('0xd')](function(){var _0x5065cc=fileLogger(_0xf4e8('0xb'),path[_0xf4e8('0x7')](_0x156053,_0x330bb3));return _0x5065cc;})[_0xf4e8('0xe')](function(_0x43c21e){throw _0x43c21e;});}this['log']=function(_0x21bb03,_0x333abd,_0xa48546,_0x435a42){return _0x38e4b6(_0x21bb03[_0xf4e8('0xf')])[_0xf4e8('0xd')](function(_0x2c4267){var _0x5e779d=_0x2c4267[_0x333abd];return _0x5e779d;})[_0xf4e8('0xd')](function(_0x1efb86){var _0x324286=_0x21bb03[_0xf4e8('0xf')]?_0x21bb03['user']['id']:_0xf4e8('0x10');var _0x4e4a9b=_0x435a42[_0xf4e8('0x11')];var _0x5d33fd=_0x435a42[_0xf4e8('0x12')];var _0x22d17d=new Date(Number(_0x5d33fd));return _0x1efb86(_0x324286,_0x22d17d,_0xa48546,_0x4e4a9b);})[_0xf4e8('0xe')](function(_0x15d7fb){fileLogger(_0xf4e8('0xb'))[_0xf4e8('0x13')](_0x15d7fb);});};}function setupLoggers(_0x3e6815){return new Promise(function(_0x95309){var _0x2351be=new ClientSideLogger();var _0x2bd850=fileLogger(_0xf4e8('0x14'));var _0x3a7dfb=fileLogger(_0xf4e8('0x15'));_0x3e6815['set'](_0xf4e8('0x16'),_0x2351be);_0x3e6815['use'](ewinston[_0xf4e8('0x17')]({'winstonInstance':_0x2bd850,'meta':![],'statusLevels':!![],'msg':function(_0x5aeeb8,_0x2b987a){var _0x40e4ec=_0xf4e8('0x18');if(!_[_0xf4e8('0x19')](_0x5aeeb8[_0xf4e8('0x1a')])){_0x40e4ec+=_0xf4e8('0x1b');var _0x1de5c7=_0x5aeeb8[_0xf4e8('0x1a')];maskSensitiveData(_0x1de5c7);}return safeTemplate(util[_0xf4e8('0x1c')](_0x40e4ec,_0x5aeeb8[_0xf4e8('0x1d')],_0x5aeeb8[_0xf4e8('0x1e')][_0xf4e8('0x1f')]?_0x5aeeb8[_0xf4e8('0x1e')][_0xf4e8('0x1f')]:_0x5aeeb8['connection'][_0xf4e8('0x20')]||_0x5aeeb8['ip'],_0x5aeeb8[_0xf4e8('0x21')],_0x2b987a[_0xf4e8('0x22')],_0x2b987a[_0xf4e8('0x23')],_0x5aeeb8[_0xf4e8('0xf')]?_0x5aeeb8[_0xf4e8('0xf')]['id']:null,_0x5aeeb8[_0xf4e8('0xf')]?_0x5aeeb8[_0xf4e8('0xf')][_0xf4e8('0x24')]:null,_0x5aeeb8[_0xf4e8('0xf')]?_0x5aeeb8[_0xf4e8('0xf')][_0xf4e8('0xc')]:null,_0x1de5c7?util[_0xf4e8('0x25')](_0x1de5c7,![],null):''));}}));_0x3e6815[_0xf4e8('0x26')](ewinston['logger']({'winstonInstance':_0x3a7dfb,'meta':![],'statusLevels':!![],'msg':function(_0x3210d2,_0x1e901a){var _0x307d71=_0xf4e8('0x27');if(_0x3210d2[_0xf4e8('0x1a')]&&_0x3210d2[_0xf4e8('0x1a')][_0xf4e8('0x28')]&&_0x3210d2[_0xf4e8('0x1a')][_0xf4e8('0x29')]){_0x307d71=_0xf4e8('0x2a');}return util[_0xf4e8('0x1c')](_0x307d71,_0x3210d2[_0xf4e8('0x1d')],_0x3210d2[_0xf4e8('0x1e')][_0xf4e8('0x1f')]?_0x3210d2['headers'][_0xf4e8('0x1f')]:_0x3210d2[_0xf4e8('0x2b')][_0xf4e8('0x20')]||_0x3210d2['ip'],_0x3210d2[_0xf4e8('0x21')],_0x1e901a[_0xf4e8('0x22')],_0x1e901a[_0xf4e8('0x23')],_0x3210d2[_0xf4e8('0xf')]?_0x3210d2['user']['id']:null,_0x3210d2[_0xf4e8('0xf')]?_0x3210d2[_0xf4e8('0xf')]['name']:null,_0x3210d2[_0xf4e8('0xf')]?_0x3210d2[_0xf4e8('0xf')]['role']:null,_0x3210d2[_0xf4e8('0x1a')]&&_0x3210d2[_0xf4e8('0x1a')]['device']?_0x3210d2['body'][_0xf4e8('0x28')]:_0xf4e8('0x2c'),_0x3210d2[_0xf4e8('0x1a')]&&_0x3210d2[_0xf4e8('0x1a')][_0xf4e8('0x29')]?_0x3210d2[_0xf4e8('0x1a')][_0xf4e8('0x29')]:'',_0x3210d2['body']&&_0x3210d2[_0xf4e8('0x1a')][_0xf4e8('0x2d')]?_0x3210d2[_0xf4e8('0x1a')][_0xf4e8('0x2d')]:'');},'ignoreRoute':function(_0x5c213c){var _0x1c200b=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x1c200b[_0xf4e8('0x2e')](_0x5c213c['url']);}}));return _0x95309();});}exports[_0xf4e8('0x2f')]=setupLoggers;