4a7db03f73fc767d0a38fdd4a0c17889a3aa6389
[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 _0xe9d4=['connection','remoteAddress','url','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','statusCode','responseTime','other','agent_name','setupLoggers','fs-extra','path','util','./loggers','./safe-template','safeTemplate','./mask-sensitive-data','maskSensitiveData','join','/var','log','client','role','name','then','user','data','timestamp','catch','error','api','auth','set','client-side-logger','use','logger','isEmpty','\x20body=%s','body','method','headers','x-forwarded-for'];(function(_0x53ea8e,_0x34de6d){var _0x2b9491=function(_0x420357){while(--_0x420357){_0x53ea8e['push'](_0x53ea8e['shift']());}};_0x2b9491(++_0x34de6d);}(_0xe9d4,0x16c));var _0x4e9d=function(_0x1a7714,_0x2869e5){_0x1a7714=_0x1a7714-0x0;var _0x30922a=_0xe9d4[_0x1a7714];return _0x30922a;};var fs=require(_0x4e9d('0x0'));var _=require('lodash');var ewinston=require('express-winston');var path=require(_0x4e9d('0x1'));var util=require(_0x4e9d('0x2'));var fileLogger=require(_0x4e9d('0x3'))['fileLogger'];var safeTemplate=require(_0x4e9d('0x4'))[_0x4e9d('0x5')];var maskSensitiveData=require(_0x4e9d('0x6'))[_0x4e9d('0x7')];function ClientSideLogger(){function _0x2cfe30(_0x5ad16c){var _0x39f8ef=path[_0x4e9d('0x8')](_0x4e9d('0x9'),_0x4e9d('0xa'),'xcally');var _0x5496cc=path['join'](_0x4e9d('0xb'),_0x5ad16c[_0x4e9d('0xc')]+'-'+_0x5ad16c[_0x4e9d('0xd')]);return fs['ensureDir'](path[_0x4e9d('0x8')](_0x39f8ef,_0x5496cc))[_0x4e9d('0xe')](function(){var _0x58e82a=fileLogger(_0x4e9d('0xb'),path[_0x4e9d('0x8')](_0x39f8ef,_0x5496cc));return _0x58e82a;})['catch'](function(_0x11d8de){throw _0x11d8de;});}this['log']=function(_0x7812b2,_0x1b31c2,_0x2fe8a7,_0x55b53b){return _0x2cfe30(_0x7812b2[_0x4e9d('0xf')])[_0x4e9d('0xe')](function(_0x5ae0e8){var _0x3ca70f=_0x5ae0e8[_0x1b31c2];return _0x3ca70f;})[_0x4e9d('0xe')](function(_0x571d52){var _0x292a71=_0x7812b2[_0x4e9d('0xf')]?_0x7812b2[_0x4e9d('0xf')]['id']:'no-user';var _0x550f8c=_0x55b53b[_0x4e9d('0x10')];var _0x55dab0=_0x55b53b[_0x4e9d('0x11')];var _0x55a6d5=new Date(Number(_0x55dab0));return _0x571d52(_0x292a71,_0x55a6d5,_0x2fe8a7,_0x550f8c);})[_0x4e9d('0x12')](function(_0x1b2cfa){fileLogger('client')[_0x4e9d('0x13')](_0x1b2cfa);});};}function setupLoggers(_0x2f054c){return new Promise(function(_0x1ea499){var _0x458644=new ClientSideLogger();var _0x9316e1=fileLogger(_0x4e9d('0x14'));var _0x359e08=fileLogger(_0x4e9d('0x15'));_0x2f054c[_0x4e9d('0x16')](_0x4e9d('0x17'),_0x458644);_0x2f054c[_0x4e9d('0x18')](ewinston[_0x4e9d('0x19')]({'winstonInstance':_0x9316e1,'meta':![],'statusLevels':!![],'msg':function(_0x21da77,_0x54a41e){var _0x295a9d='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s';if(!_[_0x4e9d('0x1a')](_0x21da77['body'])){_0x295a9d+=_0x4e9d('0x1b');var _0x4489c0=_0x21da77[_0x4e9d('0x1c')];maskSensitiveData(_0x4489c0);}return safeTemplate(util['format'](_0x295a9d,_0x21da77[_0x4e9d('0x1d')],_0x21da77[_0x4e9d('0x1e')][_0x4e9d('0x1f')]?_0x21da77[_0x4e9d('0x1e')][_0x4e9d('0x1f')]:_0x21da77[_0x4e9d('0x20')][_0x4e9d('0x21')]||_0x21da77['ip'],_0x21da77[_0x4e9d('0x22')],_0x54a41e['statusCode'],_0x54a41e['responseTime'],_0x21da77['user']?_0x21da77[_0x4e9d('0xf')]['id']:null,_0x21da77[_0x4e9d('0xf')]?_0x21da77['user'][_0x4e9d('0xd')]:null,_0x21da77[_0x4e9d('0xf')]?_0x21da77[_0x4e9d('0xf')]['role']:null,_0x4489c0?util['inspect'](_0x4489c0,![],null):''));}}));_0x2f054c['use'](ewinston[_0x4e9d('0x19')]({'winstonInstance':_0x359e08,'meta':![],'statusLevels':!![],'msg':function(_0x442659,_0x1f995c){var _0x289e0d='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s';if(_0x442659[_0x4e9d('0x1c')]&&_0x442659[_0x4e9d('0x1c')][_0x4e9d('0x23')]&&_0x442659[_0x4e9d('0x1c')][_0x4e9d('0x24')]){_0x289e0d=_0x4e9d('0x25');}return util[_0x4e9d('0x26')](_0x289e0d,_0x442659[_0x4e9d('0x1d')],_0x442659['headers'][_0x4e9d('0x1f')]?_0x442659['headers'][_0x4e9d('0x1f')]:_0x442659[_0x4e9d('0x20')][_0x4e9d('0x21')]||_0x442659['ip'],_0x442659[_0x4e9d('0x22')],_0x1f995c[_0x4e9d('0x27')],_0x1f995c[_0x4e9d('0x28')],_0x442659[_0x4e9d('0xf')]?_0x442659[_0x4e9d('0xf')]['id']:null,_0x442659[_0x4e9d('0xf')]?_0x442659[_0x4e9d('0xf')][_0x4e9d('0xd')]:null,_0x442659[_0x4e9d('0xf')]?_0x442659[_0x4e9d('0xf')][_0x4e9d('0xc')]:null,_0x442659[_0x4e9d('0x1c')]&&_0x442659[_0x4e9d('0x1c')][_0x4e9d('0x23')]?_0x442659[_0x4e9d('0x1c')][_0x4e9d('0x23')]:_0x4e9d('0x29'),_0x442659[_0x4e9d('0x1c')]&&_0x442659['body'][_0x4e9d('0x24')]?_0x442659[_0x4e9d('0x1c')]['agent_id']:'',_0x442659['body']&&_0x442659[_0x4e9d('0x1c')][_0x4e9d('0x2a')]?_0x442659[_0x4e9d('0x1c')]['agent_name']:'');},'ignoreRoute':function(_0x4e2028){var _0x47a9e3=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x47a9e3['test'](_0x4e2028[_0x4e9d('0x22')]);}}));return _0x1ea499();});}exports[_0x4e9d('0x2b')]=setupLoggers;