7a2e4eded30980556a2b0bb697323a33caea6065
[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 _0xe602=['auth','set','client-side-logger','use','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','isEmpty','\x20body=%s','body','x-forwarded-for','headers','remoteAddress','url','statusCode','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','device','format','method','agent_id','agent_name','fs-extra','lodash','./loggers','fileLogger','./safe-template','safeTemplate','maskSensitiveData','join','xcally','client','role','name','ensureDir','then','catch','log','user','no-user','data','timestamp','error'];(function(_0x2945b5,_0x22a14b){var _0x3976b7=function(_0x1b256e){while(--_0x1b256e){_0x2945b5['push'](_0x2945b5['shift']());}};_0x3976b7(++_0x22a14b);}(_0xe602,0xb8));var _0x2e60=function(_0x2ceeb9,_0x2932ee){_0x2ceeb9=_0x2ceeb9-0x0;var _0x1cb07b=_0xe602[_0x2ceeb9];return _0x1cb07b;};var fs=require(_0x2e60('0x0'));var _=require(_0x2e60('0x1'));var ewinston=require('express-winston');var path=require('path');var util=require('util');var fileLogger=require(_0x2e60('0x2'))[_0x2e60('0x3')];var safeTemplate=require(_0x2e60('0x4'))[_0x2e60('0x5')];var maskSensitiveData=require('./mask-sensitive-data')[_0x2e60('0x6')];function ClientSideLogger(){function _0x561148(_0x5f3e9f){var _0x458da7=path[_0x2e60('0x7')]('/var','log',_0x2e60('0x8'));var _0x3721f5=path[_0x2e60('0x7')](_0x2e60('0x9'),_0x5f3e9f[_0x2e60('0xa')]+'-'+_0x5f3e9f[_0x2e60('0xb')]);return fs[_0x2e60('0xc')](path['join'](_0x458da7,_0x3721f5))[_0x2e60('0xd')](function(){var _0x47f855=fileLogger(_0x2e60('0x9'),path[_0x2e60('0x7')](_0x458da7,_0x3721f5));return _0x47f855;})[_0x2e60('0xe')](function(_0x5aa826){throw _0x5aa826;});}this[_0x2e60('0xf')]=function(_0x43325f,_0x272cea,_0x18eb74,_0x31bf0d){return _0x561148(_0x43325f[_0x2e60('0x10')])[_0x2e60('0xd')](function(_0x16d6b9){var _0x962f3a=_0x16d6b9[_0x272cea];return _0x962f3a;})[_0x2e60('0xd')](function(_0x370e6f){var _0x30c231=_0x43325f['user']?_0x43325f[_0x2e60('0x10')]['id']:_0x2e60('0x11');var _0x4104c3=_0x31bf0d[_0x2e60('0x12')];var _0x396411=_0x31bf0d[_0x2e60('0x13')];var _0x279425=new Date(Number(_0x396411));return _0x370e6f(_0x30c231,_0x279425,_0x18eb74,_0x4104c3);})[_0x2e60('0xe')](function(_0x475375){fileLogger(_0x2e60('0x9'))[_0x2e60('0x14')](_0x475375);});};}function setupLoggers(_0x4b3699){return new Promise(function(_0x5d4265){var _0x1be1f2=new ClientSideLogger();var _0x4006aa=fileLogger('api');var _0x55cc40=fileLogger(_0x2e60('0x15'));_0x4b3699[_0x2e60('0x16')](_0x2e60('0x17'),_0x1be1f2);_0x4b3699[_0x2e60('0x18')](ewinston[_0x2e60('0x19')]({'winstonInstance':_0x4006aa,'meta':![],'statusLevels':!![],'msg':function(_0x19a8dc,_0x345477){var _0x1503da=_0x2e60('0x1a');if(!_[_0x2e60('0x1b')](_0x19a8dc['body'])){_0x1503da+=_0x2e60('0x1c');var _0x26e64d=_0x19a8dc[_0x2e60('0x1d')];maskSensitiveData(_0x26e64d);}return safeTemplate(util['format'](_0x1503da,_0x19a8dc['method'],_0x19a8dc['headers'][_0x2e60('0x1e')]?_0x19a8dc[_0x2e60('0x1f')][_0x2e60('0x1e')]:_0x19a8dc['connection'][_0x2e60('0x20')]||_0x19a8dc['ip'],_0x19a8dc[_0x2e60('0x21')],_0x345477[_0x2e60('0x22')],_0x345477['responseTime'],_0x19a8dc[_0x2e60('0x10')]?_0x19a8dc['user']['id']:null,_0x19a8dc[_0x2e60('0x10')]?_0x19a8dc[_0x2e60('0x10')][_0x2e60('0xb')]:null,_0x19a8dc[_0x2e60('0x10')]?_0x19a8dc[_0x2e60('0x10')][_0x2e60('0xa')]:null,_0x26e64d?util['inspect'](_0x26e64d,![],null):''));}}));_0x4b3699['use'](ewinston[_0x2e60('0x19')]({'winstonInstance':_0x55cc40,'meta':![],'statusLevels':!![],'msg':function(_0x30ac5e,_0x323f78){var _0x518bf9=_0x2e60('0x23');if(_0x30ac5e[_0x2e60('0x1d')]&&_0x30ac5e[_0x2e60('0x1d')][_0x2e60('0x24')]&&_0x30ac5e[_0x2e60('0x1d')]['agent_id']){_0x518bf9='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)';}return util[_0x2e60('0x25')](_0x518bf9,_0x30ac5e[_0x2e60('0x26')],_0x30ac5e[_0x2e60('0x1f')][_0x2e60('0x1e')]?_0x30ac5e['headers'][_0x2e60('0x1e')]:_0x30ac5e['connection'][_0x2e60('0x20')]||_0x30ac5e['ip'],_0x30ac5e[_0x2e60('0x21')],_0x323f78[_0x2e60('0x22')],_0x323f78['responseTime'],_0x30ac5e['user']?_0x30ac5e[_0x2e60('0x10')]['id']:null,_0x30ac5e['user']?_0x30ac5e[_0x2e60('0x10')][_0x2e60('0xb')]:null,_0x30ac5e[_0x2e60('0x10')]?_0x30ac5e['user'][_0x2e60('0xa')]:null,_0x30ac5e[_0x2e60('0x1d')]&&_0x30ac5e[_0x2e60('0x1d')][_0x2e60('0x24')]?_0x30ac5e[_0x2e60('0x1d')]['device']:'other',_0x30ac5e[_0x2e60('0x1d')]&&_0x30ac5e[_0x2e60('0x1d')][_0x2e60('0x27')]?_0x30ac5e[_0x2e60('0x1d')][_0x2e60('0x27')]:'',_0x30ac5e[_0x2e60('0x1d')]&&_0x30ac5e[_0x2e60('0x1d')]['agent_name']?_0x30ac5e['body'][_0x2e60('0x28')]:'');},'ignoreRoute':function(_0x5f1e4f){var _0x1177a9=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x1177a9['test'](_0x5f1e4f[_0x2e60('0x21')]);}}));return _0x5d4265();});}exports['setupLoggers']=setupLoggers;