f05ee65d01698a2bb551f8ca7df27ba62f06578d
[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 _0x5651=['%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)','other','agent_id','agent_name','url','setupLoggers','lodash','express-winston','path','util','./loggers','safeTemplate','./mask-sensitive-data','maskSensitiveData','join','log','xcally','client','ensureDir','catch','user','then','no-user','data','error','api','auth','set','use','isEmpty','body','format','method','headers','x-forwarded-for','connection','remoteAddress','statusCode','responseTime','name','inspect','logger','device'];(function(_0x458b8f,_0x1c7ac5){var _0x23aba3=function(_0x239548){while(--_0x239548){_0x458b8f['push'](_0x458b8f['shift']());}};_0x23aba3(++_0x1c7ac5);}(_0x5651,0xdd));var _0x1565=function(_0x57486e,_0x32283b){_0x57486e=_0x57486e-0x0;var _0x5f110b=_0x5651[_0x57486e];return _0x5f110b;};var fs=require('fs-extra');var _=require(_0x1565('0x0'));var ewinston=require(_0x1565('0x1'));var path=require(_0x1565('0x2'));var util=require(_0x1565('0x3'));var fileLogger=require(_0x1565('0x4'))['fileLogger'];var safeTemplate=require('./safe-template')[_0x1565('0x5')];var maskSensitiveData=require(_0x1565('0x6'))[_0x1565('0x7')];function ClientSideLogger(){function _0x44ef8a(_0x4051f0){var _0x1a5806=path[_0x1565('0x8')]('/var',_0x1565('0x9'),_0x1565('0xa'));var _0x4660dc=path[_0x1565('0x8')](_0x1565('0xb'),_0x4051f0['role']+'-'+_0x4051f0['name']);return fs[_0x1565('0xc')](path[_0x1565('0x8')](_0x1a5806,_0x4660dc))['then'](function(){var _0x1c8895=fileLogger(_0x1565('0xb'),path[_0x1565('0x8')](_0x1a5806,_0x4660dc));return _0x1c8895;})[_0x1565('0xd')](function(_0x2c092d){throw _0x2c092d;});}this[_0x1565('0x9')]=function(_0x4b1152,_0x4774c4,_0x3da62b,_0x43ee7c){return _0x44ef8a(_0x4b1152[_0x1565('0xe')])[_0x1565('0xf')](function(_0x5668cc){var _0x59979d=_0x5668cc[_0x4774c4];return _0x59979d;})[_0x1565('0xf')](function(_0x29181d){var _0x424ad0=_0x4b1152['user']?_0x4b1152[_0x1565('0xe')]['id']:_0x1565('0x10');var _0x1454cf=_0x43ee7c[_0x1565('0x11')];var _0x2ee426=_0x43ee7c['timestamp'];var _0x262568=new Date(Number(_0x2ee426));return _0x29181d(_0x424ad0,_0x262568,_0x3da62b,_0x1454cf);})[_0x1565('0xd')](function(_0x15ac73){fileLogger(_0x1565('0xb'))[_0x1565('0x12')](_0x15ac73);});};}function setupLoggers(_0x53613e){return new Promise(function(_0x4ebee8){var _0x380f07=new ClientSideLogger();var _0x54a10f=fileLogger(_0x1565('0x13'));var _0x516f3c=fileLogger(_0x1565('0x14'));_0x53613e[_0x1565('0x15')]('client-side-logger',_0x380f07);_0x53613e[_0x1565('0x16')](ewinston['logger']({'winstonInstance':_0x54a10f,'meta':![],'statusLevels':!![],'msg':function(_0x343bb3,_0x2df3a3){var _0xeb732f='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s';if(!_[_0x1565('0x17')](_0x343bb3[_0x1565('0x18')])){_0xeb732f+='\x20body=%s';var _0x5d43d4=_0x343bb3[_0x1565('0x18')];maskSensitiveData(_0x5d43d4);}return safeTemplate(util[_0x1565('0x19')](_0xeb732f,_0x343bb3[_0x1565('0x1a')],_0x343bb3[_0x1565('0x1b')][_0x1565('0x1c')]?_0x343bb3['headers']['x-forwarded-for']:_0x343bb3[_0x1565('0x1d')][_0x1565('0x1e')]||_0x343bb3['ip'],_0x343bb3['url'],_0x2df3a3[_0x1565('0x1f')],_0x2df3a3[_0x1565('0x20')],_0x343bb3[_0x1565('0xe')]?_0x343bb3[_0x1565('0xe')]['id']:null,_0x343bb3[_0x1565('0xe')]?_0x343bb3[_0x1565('0xe')][_0x1565('0x21')]:null,_0x343bb3[_0x1565('0xe')]?_0x343bb3['user']['role']:null,_0x5d43d4?util[_0x1565('0x22')](_0x5d43d4,![],null):''));}}));_0x53613e['use'](ewinston[_0x1565('0x23')]({'winstonInstance':_0x516f3c,'meta':![],'statusLevels':!![],'msg':function(_0x5ef8b4,_0x5beb21){var _0x23c8d7='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s';if(_0x5ef8b4[_0x1565('0x18')]&&_0x5ef8b4[_0x1565('0x18')][_0x1565('0x24')]&&_0x5ef8b4[_0x1565('0x18')]['agent_id']){_0x23c8d7=_0x1565('0x25');}return util['format'](_0x23c8d7,_0x5ef8b4['method'],_0x5ef8b4[_0x1565('0x1b')][_0x1565('0x1c')]?_0x5ef8b4['headers'][_0x1565('0x1c')]:_0x5ef8b4[_0x1565('0x1d')]['remoteAddress']||_0x5ef8b4['ip'],_0x5ef8b4['url'],_0x5beb21[_0x1565('0x1f')],_0x5beb21['responseTime'],_0x5ef8b4['user']?_0x5ef8b4[_0x1565('0xe')]['id']:null,_0x5ef8b4['user']?_0x5ef8b4[_0x1565('0xe')][_0x1565('0x21')]:null,_0x5ef8b4[_0x1565('0xe')]?_0x5ef8b4[_0x1565('0xe')]['role']:null,_0x5ef8b4[_0x1565('0x18')]&&_0x5ef8b4[_0x1565('0x18')][_0x1565('0x24')]?_0x5ef8b4[_0x1565('0x18')][_0x1565('0x24')]:_0x1565('0x26'),_0x5ef8b4[_0x1565('0x18')]&&_0x5ef8b4[_0x1565('0x18')][_0x1565('0x27')]?_0x5ef8b4[_0x1565('0x18')]['agent_id']:'',_0x5ef8b4[_0x1565('0x18')]&&_0x5ef8b4['body'][_0x1565('0x28')]?_0x5ef8b4[_0x1565('0x18')][_0x1565('0x28')]:'');},'ignoreRoute':function(_0x525e01){var _0x48026e=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x48026e['test'](_0x525e01[_0x1565('0x29')]);}}));return _0x4ebee8();});}exports[_0x1565('0x2a')]=setupLoggers;