2432889f7007d9f37bf2edf0e9ba03e2f84c0fe1
[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 _0xc23c=['isEmpty','body','format','headers','x-forwarded-for','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)','method','statusCode','responseTime','other','agent_name','test','setupLoggers','fs-extra','lodash','path','util','fileLogger','./safe-template','safeTemplate','./mask-sensitive-data','maskSensitiveData','join','client','role','name','ensureDir','then','catch','user','no-user','data','timestamp','error','api','auth','set','client-side-logger','use','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s'];(function(_0x1410ad,_0x3e0c9c){var _0x57faa2=function(_0x25d2dc){while(--_0x25d2dc){_0x1410ad['push'](_0x1410ad['shift']());}};_0x57faa2(++_0x3e0c9c);}(_0xc23c,0xa5));var _0xcc23=function(_0x488bf1,_0x280f12){_0x488bf1=_0x488bf1-0x0;var _0x5839c4=_0xc23c[_0x488bf1];return _0x5839c4;};var fs=require(_0xcc23('0x0'));var _=require(_0xcc23('0x1'));var ewinston=require('express-winston');var path=require(_0xcc23('0x2'));var util=require(_0xcc23('0x3'));var fileLogger=require('./loggers')[_0xcc23('0x4')];var safeTemplate=require(_0xcc23('0x5'))[_0xcc23('0x6')];var maskSensitiveData=require(_0xcc23('0x7'))[_0xcc23('0x8')];function ClientSideLogger(){function _0x196a7f(_0x22af76){var _0x30f52a=path['join']('/var','log','xcally');var _0x59faad=path[_0xcc23('0x9')](_0xcc23('0xa'),_0x22af76[_0xcc23('0xb')]+'-'+_0x22af76[_0xcc23('0xc')]);return fs[_0xcc23('0xd')](path[_0xcc23('0x9')](_0x30f52a,_0x59faad))[_0xcc23('0xe')](function(){var _0x422196=fileLogger('client',path[_0xcc23('0x9')](_0x30f52a,_0x59faad));return _0x422196;})[_0xcc23('0xf')](function(_0x25ec77){throw _0x25ec77;});}this['log']=function(_0x546d8d,_0x1db793,_0x571ced,_0x18f006){return _0x196a7f(_0x546d8d[_0xcc23('0x10')])['then'](function(_0x3f9418){var _0x5c53af=_0x3f9418[_0x1db793];return _0x5c53af;})[_0xcc23('0xe')](function(_0x40190d){var _0x51664f=_0x546d8d[_0xcc23('0x10')]?_0x546d8d['user']['id']:_0xcc23('0x11');var _0x19cf8d=_0x18f006[_0xcc23('0x12')];var _0x76ba13=_0x18f006[_0xcc23('0x13')];var _0x471c10=new Date(Number(_0x76ba13));return _0x40190d(_0x51664f,_0x471c10,_0x571ced,_0x19cf8d);})[_0xcc23('0xf')](function(_0x2b2e18){fileLogger(_0xcc23('0xa'))[_0xcc23('0x14')](_0x2b2e18);});};}function setupLoggers(_0x36e547){return new Promise(function(_0x3b98e0){var _0x365700=new ClientSideLogger();var _0x5e56bc=fileLogger(_0xcc23('0x15'));var _0x47d351=fileLogger(_0xcc23('0x16'));_0x36e547[_0xcc23('0x17')](_0xcc23('0x18'),_0x365700);_0x36e547[_0xcc23('0x19')](ewinston['logger']({'winstonInstance':_0x5e56bc,'meta':![],'statusLevels':!![],'msg':function(_0x2dd25e,_0x43c727){var _0x3cf22c=_0xcc23('0x1a');if(!_[_0xcc23('0x1b')](_0x2dd25e['body'])){_0x3cf22c+='\x20body=%s';var _0x5d3a51=_0x2dd25e[_0xcc23('0x1c')];maskSensitiveData(_0x5d3a51);}return safeTemplate(util[_0xcc23('0x1d')](_0x3cf22c,_0x2dd25e['method'],_0x2dd25e[_0xcc23('0x1e')][_0xcc23('0x1f')]?_0x2dd25e[_0xcc23('0x1e')]['x-forwarded-for']:_0x2dd25e[_0xcc23('0x20')][_0xcc23('0x21')]||_0x2dd25e['ip'],_0x2dd25e[_0xcc23('0x22')],_0x43c727['statusCode'],_0x43c727['responseTime'],_0x2dd25e['user']?_0x2dd25e['user']['id']:null,_0x2dd25e[_0xcc23('0x10')]?_0x2dd25e[_0xcc23('0x10')]['name']:null,_0x2dd25e[_0xcc23('0x10')]?_0x2dd25e[_0xcc23('0x10')][_0xcc23('0xb')]:null,_0x5d3a51?util[_0xcc23('0x23')](_0x5d3a51,![],null):''));}}));_0x36e547['use'](ewinston[_0xcc23('0x24')]({'winstonInstance':_0x47d351,'meta':![],'statusLevels':!![],'msg':function(_0x3694b6,_0x3716c3){var _0x47db96=_0xcc23('0x25');if(_0x3694b6['body']&&_0x3694b6[_0xcc23('0x1c')][_0xcc23('0x26')]&&_0x3694b6[_0xcc23('0x1c')][_0xcc23('0x27')]){_0x47db96=_0xcc23('0x28');}return util[_0xcc23('0x1d')](_0x47db96,_0x3694b6[_0xcc23('0x29')],_0x3694b6[_0xcc23('0x1e')][_0xcc23('0x1f')]?_0x3694b6[_0xcc23('0x1e')][_0xcc23('0x1f')]:_0x3694b6[_0xcc23('0x20')][_0xcc23('0x21')]||_0x3694b6['ip'],_0x3694b6[_0xcc23('0x22')],_0x3716c3[_0xcc23('0x2a')],_0x3716c3[_0xcc23('0x2b')],_0x3694b6[_0xcc23('0x10')]?_0x3694b6[_0xcc23('0x10')]['id']:null,_0x3694b6[_0xcc23('0x10')]?_0x3694b6['user']['name']:null,_0x3694b6[_0xcc23('0x10')]?_0x3694b6['user'][_0xcc23('0xb')]:null,_0x3694b6['body']&&_0x3694b6['body']['device']?_0x3694b6[_0xcc23('0x1c')][_0xcc23('0x26')]:_0xcc23('0x2c'),_0x3694b6[_0xcc23('0x1c')]&&_0x3694b6[_0xcc23('0x1c')][_0xcc23('0x27')]?_0x3694b6[_0xcc23('0x1c')][_0xcc23('0x27')]:'',_0x3694b6[_0xcc23('0x1c')]&&_0x3694b6['body'][_0xcc23('0x2d')]?_0x3694b6[_0xcc23('0x1c')][_0xcc23('0x2d')]:'');},'ignoreRoute':function(_0x3fc607){var _0x2e4f69=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x2e4f69[_0xcc23('0x2e')](_0x3fc607[_0xcc23('0x22')]);}}));return _0x3b98e0();});}exports[_0xcc23('0x2f')]=setupLoggers;