f3a761406cbab5b9a92519374d60c71b6334c664
[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 _0x0e59=['timestamp','error','api','auth','set','client-side-logger','use','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','isEmpty','body','\x20body=%s','format','method','headers','x-forwarded-for','connection','remoteAddress','statusCode','responseTime','logger','device','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)','url','other','agent_id','agent_name','test','setupLoggers','fs-extra','lodash','express-winston','util','fileLogger','./safe-template','safeTemplate','./mask-sensitive-data','/var','log','xcally','client','role','name','ensureDir','join','then','catch','user','data'];(function(_0x557701,_0x180f95){var _0x4c6d09=function(_0x241b67){while(--_0x241b67){_0x557701['push'](_0x557701['shift']());}};_0x4c6d09(++_0x180f95);}(_0x0e59,0x13c));var _0x90e5=function(_0x5530a1,_0x5edb41){_0x5530a1=_0x5530a1-0x0;var _0x4d5c58=_0x0e59[_0x5530a1];return _0x4d5c58;};var fs=require(_0x90e5('0x0'));var _=require(_0x90e5('0x1'));var ewinston=require(_0x90e5('0x2'));var path=require('path');var util=require(_0x90e5('0x3'));var fileLogger=require('./loggers')[_0x90e5('0x4')];var safeTemplate=require(_0x90e5('0x5'))[_0x90e5('0x6')];var maskSensitiveData=require(_0x90e5('0x7'))['maskSensitiveData'];function ClientSideLogger(){function _0x538cc5(_0x4cbcee){var _0x307fbc=path['join'](_0x90e5('0x8'),_0x90e5('0x9'),_0x90e5('0xa'));var _0x5e7ed2=path['join'](_0x90e5('0xb'),_0x4cbcee[_0x90e5('0xc')]+'-'+_0x4cbcee[_0x90e5('0xd')]);return fs[_0x90e5('0xe')](path[_0x90e5('0xf')](_0x307fbc,_0x5e7ed2))[_0x90e5('0x10')](function(){var _0x52091c=fileLogger(_0x90e5('0xb'),path[_0x90e5('0xf')](_0x307fbc,_0x5e7ed2));return _0x52091c;})[_0x90e5('0x11')](function(_0x3d758d){throw _0x3d758d;});}this[_0x90e5('0x9')]=function(_0x33ab2f,_0x13dc74,_0x58f4d4,_0x503840){return _0x538cc5(_0x33ab2f[_0x90e5('0x12')])[_0x90e5('0x10')](function(_0x2c8f31){var _0x323422=_0x2c8f31[_0x13dc74];return _0x323422;})[_0x90e5('0x10')](function(_0x411c34){var _0x1a05cb=_0x33ab2f[_0x90e5('0x12')]?_0x33ab2f[_0x90e5('0x12')]['id']:'no-user';var _0x4401de=_0x503840[_0x90e5('0x13')];var _0x285abb=_0x503840[_0x90e5('0x14')];var _0x45661d=new Date(Number(_0x285abb));return _0x411c34(_0x1a05cb,_0x45661d,_0x58f4d4,_0x4401de);})[_0x90e5('0x11')](function(_0x529f4b){fileLogger(_0x90e5('0xb'))[_0x90e5('0x15')](_0x529f4b);});};}function setupLoggers(_0x1c2f0a){return new Promise(function(_0x5b3f54){var _0x59c563=new ClientSideLogger();var _0x1b5aff=fileLogger(_0x90e5('0x16'));var _0xd89f7a=fileLogger(_0x90e5('0x17'));_0x1c2f0a[_0x90e5('0x18')](_0x90e5('0x19'),_0x59c563);_0x1c2f0a[_0x90e5('0x1a')](ewinston['logger']({'winstonInstance':_0x1b5aff,'meta':![],'statusLevels':!![],'msg':function(_0xcbb401,_0x38a3c8){var _0xb37bb5=_0x90e5('0x1b');if(!_[_0x90e5('0x1c')](_0xcbb401[_0x90e5('0x1d')])){_0xb37bb5+=_0x90e5('0x1e');var _0x57038e=_0xcbb401['body'];maskSensitiveData(_0x57038e);}return safeTemplate(util[_0x90e5('0x1f')](_0xb37bb5,_0xcbb401[_0x90e5('0x20')],_0xcbb401[_0x90e5('0x21')][_0x90e5('0x22')]?_0xcbb401[_0x90e5('0x21')]['x-forwarded-for']:_0xcbb401[_0x90e5('0x23')][_0x90e5('0x24')]||_0xcbb401['ip'],_0xcbb401['url'],_0x38a3c8[_0x90e5('0x25')],_0x38a3c8[_0x90e5('0x26')],_0xcbb401[_0x90e5('0x12')]?_0xcbb401[_0x90e5('0x12')]['id']:null,_0xcbb401[_0x90e5('0x12')]?_0xcbb401[_0x90e5('0x12')][_0x90e5('0xd')]:null,_0xcbb401[_0x90e5('0x12')]?_0xcbb401[_0x90e5('0x12')][_0x90e5('0xc')]:null,_0x57038e?util['inspect'](_0x57038e,![],null):''));}}));_0x1c2f0a[_0x90e5('0x1a')](ewinston[_0x90e5('0x27')]({'winstonInstance':_0xd89f7a,'meta':![],'statusLevels':!![],'msg':function(_0x3906fe,_0x67f5d1){var _0x4b1eb6='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s';if(_0x3906fe[_0x90e5('0x1d')]&&_0x3906fe[_0x90e5('0x1d')][_0x90e5('0x28')]&&_0x3906fe['body']['agent_id']){_0x4b1eb6=_0x90e5('0x29');}return util['format'](_0x4b1eb6,_0x3906fe[_0x90e5('0x20')],_0x3906fe[_0x90e5('0x21')][_0x90e5('0x22')]?_0x3906fe[_0x90e5('0x21')][_0x90e5('0x22')]:_0x3906fe['connection'][_0x90e5('0x24')]||_0x3906fe['ip'],_0x3906fe[_0x90e5('0x2a')],_0x67f5d1['statusCode'],_0x67f5d1[_0x90e5('0x26')],_0x3906fe['user']?_0x3906fe[_0x90e5('0x12')]['id']:null,_0x3906fe[_0x90e5('0x12')]?_0x3906fe[_0x90e5('0x12')][_0x90e5('0xd')]:null,_0x3906fe[_0x90e5('0x12')]?_0x3906fe['user'][_0x90e5('0xc')]:null,_0x3906fe[_0x90e5('0x1d')]&&_0x3906fe[_0x90e5('0x1d')][_0x90e5('0x28')]?_0x3906fe[_0x90e5('0x1d')][_0x90e5('0x28')]:_0x90e5('0x2b'),_0x3906fe['body']&&_0x3906fe[_0x90e5('0x1d')]['agent_id']?_0x3906fe[_0x90e5('0x1d')][_0x90e5('0x2c')]:'',_0x3906fe['body']&&_0x3906fe[_0x90e5('0x1d')][_0x90e5('0x2d')]?_0x3906fe[_0x90e5('0x1d')][_0x90e5('0x2d')]:'');},'ignoreRoute':function(_0x1b9431){var _0x5f27e3=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x5f27e3[_0x90e5('0x2e')](_0x1b9431[_0x90e5('0x2a')]);}}));return _0x5b3f54();});}exports[_0x90e5('0x2f')]=setupLoggers;