cf1a40449265f1707a1dded38a4f0f06f546a575
[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 _0x2ae9=['xcally','role','name','ensureDir','join','then','client','catch','user','no-user','data','error','api','auth','set','client-side-logger','use','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','body','format','method','x-forwarded-for','headers','connection','remoteAddress','url','inspect','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','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)','statusCode','responseTime','agent_name','test','setupLoggers','fs-extra','express-winston','path','util','./loggers','fileLogger','/var','log'];(function(_0x167cc1,_0x56ef5a){var _0x10bc4b=function(_0xd6a255){while(--_0xd6a255){_0x167cc1['push'](_0x167cc1['shift']());}};_0x10bc4b(++_0x56ef5a);}(_0x2ae9,0x1e7));var _0x92ae=function(_0x15ece6,_0x51a965){_0x15ece6=_0x15ece6-0x0;var _0x3dc05c=_0x2ae9[_0x15ece6];return _0x3dc05c;};var fs=require(_0x92ae('0x0'));var _=require('lodash');var ewinston=require(_0x92ae('0x1'));var path=require(_0x92ae('0x2'));var util=require(_0x92ae('0x3'));var fileLogger=require(_0x92ae('0x4'))[_0x92ae('0x5')];var safeTemplate=require('./safe-template')['safeTemplate'];var maskSensitiveData=require('./mask-sensitive-data')['maskSensitiveData'];function ClientSideLogger(){function _0x4763a(_0x4f1443){var _0x2abbe9=path['join'](_0x92ae('0x6'),_0x92ae('0x7'),_0x92ae('0x8'));var _0x4ae645=path['join']('client',_0x4f1443[_0x92ae('0x9')]+'-'+_0x4f1443[_0x92ae('0xa')]);return fs[_0x92ae('0xb')](path[_0x92ae('0xc')](_0x2abbe9,_0x4ae645))[_0x92ae('0xd')](function(){var _0x345178=fileLogger(_0x92ae('0xe'),path[_0x92ae('0xc')](_0x2abbe9,_0x4ae645));return _0x345178;})[_0x92ae('0xf')](function(_0x454751){throw _0x454751;});}this[_0x92ae('0x7')]=function(_0xea445,_0x2350fd,_0x5465e3,_0x18bdfd){return _0x4763a(_0xea445[_0x92ae('0x10')])[_0x92ae('0xd')](function(_0x2807df){var _0x23d1f0=_0x2807df[_0x2350fd];return _0x23d1f0;})['then'](function(_0x3d9451){var _0x5a9f5c=_0xea445[_0x92ae('0x10')]?_0xea445[_0x92ae('0x10')]['id']:_0x92ae('0x11');var _0x4f6768=_0x18bdfd[_0x92ae('0x12')];var _0x162c22=_0x18bdfd['timestamp'];var _0x205352=new Date(Number(_0x162c22));return _0x3d9451(_0x5a9f5c,_0x205352,_0x5465e3,_0x4f6768);})[_0x92ae('0xf')](function(_0x223fac){fileLogger('client')[_0x92ae('0x13')](_0x223fac);});};}function setupLoggers(_0x403815){return new Promise(function(_0x3f7bf9){var _0x10d794=new ClientSideLogger();var _0x54e7d8=fileLogger(_0x92ae('0x14'));var _0x351859=fileLogger(_0x92ae('0x15'));_0x403815[_0x92ae('0x16')](_0x92ae('0x17'),_0x10d794);_0x403815[_0x92ae('0x18')](ewinston['logger']({'winstonInstance':_0x54e7d8,'meta':![],'statusLevels':!![],'msg':function(_0x429e8e,_0x3d39a0){var _0x227b2f=_0x92ae('0x19');if(!_['isEmpty'](_0x429e8e[_0x92ae('0x1a')])){_0x227b2f+='\x20body=%s';var _0x5d698c=_0x429e8e[_0x92ae('0x1a')];maskSensitiveData(_0x5d698c);}return safeTemplate(util[_0x92ae('0x1b')](_0x227b2f,_0x429e8e[_0x92ae('0x1c')],_0x429e8e['headers'][_0x92ae('0x1d')]?_0x429e8e[_0x92ae('0x1e')][_0x92ae('0x1d')]:_0x429e8e[_0x92ae('0x1f')][_0x92ae('0x20')]||_0x429e8e['ip'],_0x429e8e[_0x92ae('0x21')],_0x3d39a0['statusCode'],_0x3d39a0['responseTime'],_0x429e8e[_0x92ae('0x10')]?_0x429e8e['user']['id']:null,_0x429e8e['user']?_0x429e8e[_0x92ae('0x10')][_0x92ae('0xa')]:null,_0x429e8e[_0x92ae('0x10')]?_0x429e8e[_0x92ae('0x10')][_0x92ae('0x9')]:null,_0x5d698c?util[_0x92ae('0x22')](_0x5d698c,![],null):''));}}));_0x403815[_0x92ae('0x18')](ewinston[_0x92ae('0x23')]({'winstonInstance':_0x351859,'meta':![],'statusLevels':!![],'msg':function(_0x529a0c,_0x381bb9){var _0x3de6af=_0x92ae('0x24');if(_0x529a0c['body']&&_0x529a0c[_0x92ae('0x1a')][_0x92ae('0x25')]&&_0x529a0c[_0x92ae('0x1a')][_0x92ae('0x26')]){_0x3de6af=_0x92ae('0x27');}return util[_0x92ae('0x1b')](_0x3de6af,_0x529a0c[_0x92ae('0x1c')],_0x529a0c[_0x92ae('0x1e')][_0x92ae('0x1d')]?_0x529a0c[_0x92ae('0x1e')][_0x92ae('0x1d')]:_0x529a0c[_0x92ae('0x1f')]['remoteAddress']||_0x529a0c['ip'],_0x529a0c[_0x92ae('0x21')],_0x381bb9[_0x92ae('0x28')],_0x381bb9[_0x92ae('0x29')],_0x529a0c[_0x92ae('0x10')]?_0x529a0c[_0x92ae('0x10')]['id']:null,_0x529a0c[_0x92ae('0x10')]?_0x529a0c[_0x92ae('0x10')]['name']:null,_0x529a0c[_0x92ae('0x10')]?_0x529a0c['user']['role']:null,_0x529a0c[_0x92ae('0x1a')]&&_0x529a0c[_0x92ae('0x1a')][_0x92ae('0x25')]?_0x529a0c['body'][_0x92ae('0x25')]:'other',_0x529a0c[_0x92ae('0x1a')]&&_0x529a0c['body'][_0x92ae('0x26')]?_0x529a0c['body'][_0x92ae('0x26')]:'',_0x529a0c[_0x92ae('0x1a')]&&_0x529a0c[_0x92ae('0x1a')][_0x92ae('0x2a')]?_0x529a0c['body'][_0x92ae('0x2a')]:'');},'ignoreRoute':function(_0x16180d){var _0x263594=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x263594[_0x92ae('0x2b')](_0x16180d[_0x92ae('0x21')]);}}));return _0x3f7bf9();});}exports[_0x92ae('0x2c')]=setupLoggers;