Built motion from commit eddce310.|2.6.12
[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 _0x03ce=['use','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','isEmpty','body','format','headers','x-forwarded-for','connection','remoteAddress','statusCode','responseTime','inspect','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','device','method','url','agent_id','agent_name','setupLoggers','fs-extra','lodash','express-winston','path','./loggers','fileLogger','safeTemplate','./mask-sensitive-data','maskSensitiveData','join','/var','log','xcally','client','role','name','ensureDir','then','catch','user','no-user','api','auth','set','client-side-logger'];(function(_0x20e407,_0x3ab861){var _0x11185e=function(_0xac15d6){while(--_0xac15d6){_0x20e407['push'](_0x20e407['shift']());}};_0x11185e(++_0x3ab861);}(_0x03ce,0xef));var _0xe03c=function(_0x541b2c,_0x34972e){_0x541b2c=_0x541b2c-0x0;var _0x42c517=_0x03ce[_0x541b2c];return _0x42c517;};var fs=require(_0xe03c('0x0'));var _=require(_0xe03c('0x1'));var ewinston=require(_0xe03c('0x2'));var path=require(_0xe03c('0x3'));var util=require('util');var fileLogger=require(_0xe03c('0x4'))[_0xe03c('0x5')];var safeTemplate=require('./safe-template')[_0xe03c('0x6')];var maskSensitiveData=require(_0xe03c('0x7'))[_0xe03c('0x8')];function ClientSideLogger(){function _0x1c3e2c(_0x255f59){var _0x3a605b=path[_0xe03c('0x9')](_0xe03c('0xa'),_0xe03c('0xb'),_0xe03c('0xc'));var _0x70d07c=path['join'](_0xe03c('0xd'),_0x255f59[_0xe03c('0xe')]+'-'+_0x255f59[_0xe03c('0xf')]);return fs[_0xe03c('0x10')](path['join'](_0x3a605b,_0x70d07c))[_0xe03c('0x11')](function(){var _0x38cefe=fileLogger('client',path[_0xe03c('0x9')](_0x3a605b,_0x70d07c));return _0x38cefe;})[_0xe03c('0x12')](function(_0x22d783){throw _0x22d783;});}this[_0xe03c('0xb')]=function(_0x16657a,_0x318f93,_0x105545,_0x41ef28){return _0x1c3e2c(_0x16657a['user'])['then'](function(_0x3785d2){var _0x37c6dd=_0x3785d2[_0x318f93];return _0x37c6dd;})[_0xe03c('0x11')](function(_0x3c7e2a){var _0x5f2906=_0x16657a[_0xe03c('0x13')]?_0x16657a[_0xe03c('0x13')]['id']:_0xe03c('0x14');var _0x585e42=_0x41ef28['data'];var _0xd1bcc5=_0x41ef28['timestamp'];var _0x40f2ba=new Date(Number(_0xd1bcc5));return _0x3c7e2a(_0x5f2906,_0x40f2ba,_0x105545,_0x585e42);})[_0xe03c('0x12')](function(_0x1f8e82){fileLogger('client')['error'](_0x1f8e82);});};}function setupLoggers(_0xc34669){return new Promise(function(_0x3078eb){var _0x4d5341=new ClientSideLogger();var _0x5c1ba1=fileLogger(_0xe03c('0x15'));var _0x434b0a=fileLogger(_0xe03c('0x16'));_0xc34669[_0xe03c('0x17')](_0xe03c('0x18'),_0x4d5341);_0xc34669[_0xe03c('0x19')](ewinston['logger']({'winstonInstance':_0x5c1ba1,'meta':![],'statusLevels':!![],'msg':function(_0xc35e5d,_0x35f5ea){var _0x14cfe1=_0xe03c('0x1a');if(!_[_0xe03c('0x1b')](_0xc35e5d[_0xe03c('0x1c')])){_0x14cfe1+='\x20body=%s';var _0x50ec67=_0xc35e5d[_0xe03c('0x1c')];maskSensitiveData(_0x50ec67);}return safeTemplate(util[_0xe03c('0x1d')](_0x14cfe1,_0xc35e5d['method'],_0xc35e5d[_0xe03c('0x1e')]['x-forwarded-for']?_0xc35e5d[_0xe03c('0x1e')][_0xe03c('0x1f')]:_0xc35e5d[_0xe03c('0x20')][_0xe03c('0x21')]||_0xc35e5d['ip'],_0xc35e5d['url'],_0x35f5ea[_0xe03c('0x22')],_0x35f5ea[_0xe03c('0x23')],_0xc35e5d[_0xe03c('0x13')]?_0xc35e5d['user']['id']:null,_0xc35e5d[_0xe03c('0x13')]?_0xc35e5d['user'][_0xe03c('0xf')]:null,_0xc35e5d['user']?_0xc35e5d['user'][_0xe03c('0xe')]:null,_0x50ec67?util[_0xe03c('0x24')](_0x50ec67,![],null):''));}}));_0xc34669[_0xe03c('0x19')](ewinston['logger']({'winstonInstance':_0x434b0a,'meta':![],'statusLevels':!![],'msg':function(_0x29c804,_0x27e6ae){var _0x41e7f5=_0xe03c('0x25');if(_0x29c804[_0xe03c('0x1c')]&&_0x29c804[_0xe03c('0x1c')][_0xe03c('0x26')]&&_0x29c804['body']['agent_id']){_0x41e7f5='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)';}return util[_0xe03c('0x1d')](_0x41e7f5,_0x29c804[_0xe03c('0x27')],_0x29c804['headers'][_0xe03c('0x1f')]?_0x29c804[_0xe03c('0x1e')][_0xe03c('0x1f')]:_0x29c804[_0xe03c('0x20')][_0xe03c('0x21')]||_0x29c804['ip'],_0x29c804[_0xe03c('0x28')],_0x27e6ae[_0xe03c('0x22')],_0x27e6ae[_0xe03c('0x23')],_0x29c804[_0xe03c('0x13')]?_0x29c804[_0xe03c('0x13')]['id']:null,_0x29c804[_0xe03c('0x13')]?_0x29c804[_0xe03c('0x13')][_0xe03c('0xf')]:null,_0x29c804['user']?_0x29c804[_0xe03c('0x13')][_0xe03c('0xe')]:null,_0x29c804[_0xe03c('0x1c')]&&_0x29c804[_0xe03c('0x1c')][_0xe03c('0x26')]?_0x29c804[_0xe03c('0x1c')]['device']:'other',_0x29c804[_0xe03c('0x1c')]&&_0x29c804[_0xe03c('0x1c')][_0xe03c('0x29')]?_0x29c804[_0xe03c('0x1c')][_0xe03c('0x29')]:'',_0x29c804[_0xe03c('0x1c')]&&_0x29c804['body']['agent_name']?_0x29c804[_0xe03c('0x1c')][_0xe03c('0x2a')]:'');},'ignoreRoute':function(_0x45a256){var _0x4510d7=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x4510d7['test'](_0x45a256[_0xe03c('0x28')]);}}));return _0x3078eb();});}exports[_0xe03c('0x2b')]=setupLoggers;