3e8b292141d29d6244a7ed300b4dae7bd1f5b030
[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 _0xf6bd=['then','client','catch','log','user','no-user','api','auth','use','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','isEmpty','body','\x20body=%s','method','headers','x-forwarded-for','remoteAddress','url','statusCode','responseTime','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','device','agent_id','connection','other','agent_name','test','setupLoggers','fs-extra','lodash','path','./loggers','fileLogger','./safe-template','maskSensitiveData','xcally','role','name','ensureDir','join'];(function(_0x5769f0,_0x3d2f6b){var _0x46c07e=function(_0x38e646){while(--_0x38e646){_0x5769f0['push'](_0x5769f0['shift']());}};_0x46c07e(++_0x3d2f6b);}(_0xf6bd,0x165));var _0xdf6b=function(_0x822a3f,_0x32fd83){_0x822a3f=_0x822a3f-0x0;var _0x1053e7=_0xf6bd[_0x822a3f];return _0x1053e7;};var fs=require(_0xdf6b('0x0'));var _=require(_0xdf6b('0x1'));var ewinston=require('express-winston');var path=require(_0xdf6b('0x2'));var util=require('util');var fileLogger=require(_0xdf6b('0x3'))[_0xdf6b('0x4')];var safeTemplate=require(_0xdf6b('0x5'))['safeTemplate'];var maskSensitiveData=require('./mask-sensitive-data')[_0xdf6b('0x6')];function ClientSideLogger(){function _0x24d9bb(_0x3b4ff1){var _0x4f1e41=path['join']('/var','log',_0xdf6b('0x7'));var _0x3671aa=path['join']('client',_0x3b4ff1[_0xdf6b('0x8')]+'-'+_0x3b4ff1[_0xdf6b('0x9')]);return fs[_0xdf6b('0xa')](path[_0xdf6b('0xb')](_0x4f1e41,_0x3671aa))[_0xdf6b('0xc')](function(){var _0x4e1aec=fileLogger(_0xdf6b('0xd'),path['join'](_0x4f1e41,_0x3671aa));return _0x4e1aec;})[_0xdf6b('0xe')](function(_0x26e4f3){throw _0x26e4f3;});}this[_0xdf6b('0xf')]=function(_0x387e52,_0x2def9b,_0x2c6344,_0x54abc2){return _0x24d9bb(_0x387e52['user'])[_0xdf6b('0xc')](function(_0x9675b1){var _0x3c3b6a=_0x9675b1[_0x2def9b];return _0x3c3b6a;})[_0xdf6b('0xc')](function(_0x4734e4){var _0x5757da=_0x387e52[_0xdf6b('0x10')]?_0x387e52[_0xdf6b('0x10')]['id']:_0xdf6b('0x11');var _0x2750ce=_0x54abc2['data'];var _0x28de2d=_0x54abc2['timestamp'];var _0x100538=new Date(Number(_0x28de2d));return _0x4734e4(_0x5757da,_0x100538,_0x2c6344,_0x2750ce);})[_0xdf6b('0xe')](function(_0x5c6a36){fileLogger(_0xdf6b('0xd'))['error'](_0x5c6a36);});};}function setupLoggers(_0x216624){return new Promise(function(_0x151406){var _0x4d9488=new ClientSideLogger();var _0x5812ed=fileLogger(_0xdf6b('0x12'));var _0x40941a=fileLogger(_0xdf6b('0x13'));_0x216624['set']('client-side-logger',_0x4d9488);_0x216624[_0xdf6b('0x14')](ewinston[_0xdf6b('0x15')]({'winstonInstance':_0x5812ed,'meta':![],'statusLevels':!![],'msg':function(_0x3a30d7,_0x57c33c){var _0x269f18=_0xdf6b('0x16');if(!_[_0xdf6b('0x17')](_0x3a30d7[_0xdf6b('0x18')])){_0x269f18+=_0xdf6b('0x19');var _0x542db2=_0x3a30d7['body'];maskSensitiveData(_0x542db2);}return safeTemplate(util['format'](_0x269f18,_0x3a30d7[_0xdf6b('0x1a')],_0x3a30d7[_0xdf6b('0x1b')][_0xdf6b('0x1c')]?_0x3a30d7[_0xdf6b('0x1b')][_0xdf6b('0x1c')]:_0x3a30d7['connection'][_0xdf6b('0x1d')]||_0x3a30d7['ip'],_0x3a30d7[_0xdf6b('0x1e')],_0x57c33c[_0xdf6b('0x1f')],_0x57c33c[_0xdf6b('0x20')],_0x3a30d7[_0xdf6b('0x10')]?_0x3a30d7[_0xdf6b('0x10')]['id']:null,_0x3a30d7[_0xdf6b('0x10')]?_0x3a30d7[_0xdf6b('0x10')][_0xdf6b('0x9')]:null,_0x3a30d7['user']?_0x3a30d7[_0xdf6b('0x10')]['role']:null,_0x542db2?util['inspect'](_0x542db2,![],null):''));}}));_0x216624[_0xdf6b('0x14')](ewinston['logger']({'winstonInstance':_0x40941a,'meta':![],'statusLevels':!![],'msg':function(_0x1beb7e,_0x56e38b){var _0x12a811=_0xdf6b('0x21');if(_0x1beb7e['body']&&_0x1beb7e[_0xdf6b('0x18')][_0xdf6b('0x22')]&&_0x1beb7e[_0xdf6b('0x18')][_0xdf6b('0x23')]){_0x12a811='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)';}return util['format'](_0x12a811,_0x1beb7e['method'],_0x1beb7e[_0xdf6b('0x1b')][_0xdf6b('0x1c')]?_0x1beb7e[_0xdf6b('0x1b')][_0xdf6b('0x1c')]:_0x1beb7e[_0xdf6b('0x24')][_0xdf6b('0x1d')]||_0x1beb7e['ip'],_0x1beb7e[_0xdf6b('0x1e')],_0x56e38b['statusCode'],_0x56e38b['responseTime'],_0x1beb7e[_0xdf6b('0x10')]?_0x1beb7e[_0xdf6b('0x10')]['id']:null,_0x1beb7e[_0xdf6b('0x10')]?_0x1beb7e[_0xdf6b('0x10')]['name']:null,_0x1beb7e['user']?_0x1beb7e['user'][_0xdf6b('0x8')]:null,_0x1beb7e[_0xdf6b('0x18')]&&_0x1beb7e['body'][_0xdf6b('0x22')]?_0x1beb7e[_0xdf6b('0x18')]['device']:_0xdf6b('0x25'),_0x1beb7e[_0xdf6b('0x18')]&&_0x1beb7e[_0xdf6b('0x18')]['agent_id']?_0x1beb7e['body']['agent_id']:'',_0x1beb7e[_0xdf6b('0x18')]&&_0x1beb7e['body'][_0xdf6b('0x26')]?_0x1beb7e[_0xdf6b('0x18')][_0xdf6b('0x26')]:'');},'ignoreRoute':function(_0x27bd09){var _0x30a997=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x30a997[_0xdf6b('0x27')](_0x27bd09[_0xdf6b('0x1e')]);}}));return _0x151406();});}exports[_0xdf6b('0x28')]=setupLoggers;