5583db2add073027505c6aab8147caa3dd048597
[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 _0x989b=['responseTime','other','agent_name','setupLoggers','fs-extra','lodash','util','fileLogger','safeTemplate','./mask-sensitive-data','maskSensitiveData','/var','log','xcally','name','ensureDir','join','then','client','user','no-user','data','catch','error','auth','client-side-logger','use','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','body','format','headers','x-forwarded-for','remoteAddress','url','statusCode','role','inspect','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','device','agent_id','connection'];(function(_0x51070b,_0x39c85d){var _0x153240=function(_0x7c02f2){while(--_0x7c02f2){_0x51070b['push'](_0x51070b['shift']());}};_0x153240(++_0x39c85d);}(_0x989b,0xd6));var _0xb989=function(_0x4a6539,_0xe1231a){_0x4a6539=_0x4a6539-0x0;var _0x2e92da=_0x989b[_0x4a6539];return _0x2e92da;};var fs=require(_0xb989('0x0'));var _=require(_0xb989('0x1'));var ewinston=require('express-winston');var path=require('path');var util=require(_0xb989('0x2'));var fileLogger=require('./loggers')[_0xb989('0x3')];var safeTemplate=require('./safe-template')[_0xb989('0x4')];var maskSensitiveData=require(_0xb989('0x5'))[_0xb989('0x6')];function ClientSideLogger(){function _0x2d516d(_0x25f311){var _0x49d1e9=path['join'](_0xb989('0x7'),_0xb989('0x8'),_0xb989('0x9'));var _0xa2ff07=path['join']('client',_0x25f311['role']+'-'+_0x25f311[_0xb989('0xa')]);return fs[_0xb989('0xb')](path[_0xb989('0xc')](_0x49d1e9,_0xa2ff07))[_0xb989('0xd')](function(){var _0x546a2b=fileLogger(_0xb989('0xe'),path['join'](_0x49d1e9,_0xa2ff07));return _0x546a2b;})['catch'](function(_0xb65f69){throw _0xb65f69;});}this[_0xb989('0x8')]=function(_0x2ef949,_0x3e9cfd,_0x4830ab,_0x12c9cd){return _0x2d516d(_0x2ef949[_0xb989('0xf')])[_0xb989('0xd')](function(_0x583016){var _0x4d519b=_0x583016[_0x3e9cfd];return _0x4d519b;})[_0xb989('0xd')](function(_0x3ae27e){var _0x2905b3=_0x2ef949['user']?_0x2ef949['user']['id']:_0xb989('0x10');var _0x763462=_0x12c9cd[_0xb989('0x11')];var _0x2d7de8=_0x12c9cd['timestamp'];var _0x336ef1=new Date(Number(_0x2d7de8));return _0x3ae27e(_0x2905b3,_0x336ef1,_0x4830ab,_0x763462);})[_0xb989('0x12')](function(_0xf50443){fileLogger('client')[_0xb989('0x13')](_0xf50443);});};}function setupLoggers(_0x21ee88){return new Promise(function(_0x550c23){var _0x199320=new ClientSideLogger();var _0x2361df=fileLogger('api');var _0x372ce1=fileLogger(_0xb989('0x14'));_0x21ee88['set'](_0xb989('0x15'),_0x199320);_0x21ee88[_0xb989('0x16')](ewinston[_0xb989('0x17')]({'winstonInstance':_0x2361df,'meta':![],'statusLevels':!![],'msg':function(_0xd6fb91,_0x455f86){var _0x4fa525=_0xb989('0x18');if(!_['isEmpty'](_0xd6fb91['body'])){_0x4fa525+='\x20body=%s';var _0x36f0cd=_0xd6fb91[_0xb989('0x19')];maskSensitiveData(_0x36f0cd);}return safeTemplate(util[_0xb989('0x1a')](_0x4fa525,_0xd6fb91['method'],_0xd6fb91[_0xb989('0x1b')][_0xb989('0x1c')]?_0xd6fb91['headers']['x-forwarded-for']:_0xd6fb91['connection'][_0xb989('0x1d')]||_0xd6fb91['ip'],_0xd6fb91[_0xb989('0x1e')],_0x455f86[_0xb989('0x1f')],_0x455f86['responseTime'],_0xd6fb91[_0xb989('0xf')]?_0xd6fb91[_0xb989('0xf')]['id']:null,_0xd6fb91['user']?_0xd6fb91[_0xb989('0xf')]['name']:null,_0xd6fb91[_0xb989('0xf')]?_0xd6fb91[_0xb989('0xf')][_0xb989('0x20')]:null,_0x36f0cd?util[_0xb989('0x21')](_0x36f0cd,![],null):''));}}));_0x21ee88[_0xb989('0x16')](ewinston[_0xb989('0x17')]({'winstonInstance':_0x372ce1,'meta':![],'statusLevels':!![],'msg':function(_0x3d8145,_0xcb61b7){var _0x30e930=_0xb989('0x22');if(_0x3d8145[_0xb989('0x19')]&&_0x3d8145[_0xb989('0x19')][_0xb989('0x23')]&&_0x3d8145[_0xb989('0x19')][_0xb989('0x24')]){_0x30e930='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)';}return util[_0xb989('0x1a')](_0x30e930,_0x3d8145['method'],_0x3d8145['headers'][_0xb989('0x1c')]?_0x3d8145[_0xb989('0x1b')][_0xb989('0x1c')]:_0x3d8145[_0xb989('0x25')][_0xb989('0x1d')]||_0x3d8145['ip'],_0x3d8145[_0xb989('0x1e')],_0xcb61b7[_0xb989('0x1f')],_0xcb61b7[_0xb989('0x26')],_0x3d8145[_0xb989('0xf')]?_0x3d8145[_0xb989('0xf')]['id']:null,_0x3d8145[_0xb989('0xf')]?_0x3d8145[_0xb989('0xf')][_0xb989('0xa')]:null,_0x3d8145[_0xb989('0xf')]?_0x3d8145[_0xb989('0xf')]['role']:null,_0x3d8145[_0xb989('0x19')]&&_0x3d8145[_0xb989('0x19')]['device']?_0x3d8145[_0xb989('0x19')][_0xb989('0x23')]:_0xb989('0x27'),_0x3d8145[_0xb989('0x19')]&&_0x3d8145[_0xb989('0x19')][_0xb989('0x24')]?_0x3d8145[_0xb989('0x19')]['agent_id']:'',_0x3d8145[_0xb989('0x19')]&&_0x3d8145[_0xb989('0x19')]['agent_name']?_0x3d8145['body'][_0xb989('0x28')]:'');},'ignoreRoute':function(_0x4b9886){var _0x2e2bf7=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x2e2bf7['test'](_0x4b9886['url']);}}));return _0x550c23();});}exports[_0xb989('0x29')]=setupLoggers;