Built motion from commit 85328c08.|2.5.50
[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 _0x1960=['test','setupLoggers','lodash','express-winston','fileLogger','./safe-template','safeTemplate','/var','log','xcally','join','name','ensureDir','client','then','user','data','timestamp','catch','error','api','auth','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','isEmpty','body','\x20body=%s','format','method','x-forwarded-for','headers','connection','url','statusCode','responseTime','role','inspect','use','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s','device','agent_id','remoteAddress','other','agent_name'];(function(_0x2096c5,_0x192abb){var _0xf5a852=function(_0x29fdca){while(--_0x29fdca){_0x2096c5['push'](_0x2096c5['shift']());}};_0xf5a852(++_0x192abb);}(_0x1960,0x1ba));var _0x0196=function(_0x16029e,_0x4c66f3){_0x16029e=_0x16029e-0x0;var _0x302b40=_0x1960[_0x16029e];return _0x302b40;};var fs=require('fs-extra');var _=require(_0x0196('0x0'));var ewinston=require(_0x0196('0x1'));var path=require('path');var util=require('util');var fileLogger=require('./loggers')[_0x0196('0x2')];var safeTemplate=require(_0x0196('0x3'))[_0x0196('0x4')];var maskSensitiveData=require('./mask-sensitive-data')['maskSensitiveData'];function ClientSideLogger(){function _0x2cfb41(_0x2a7aaf){var _0x29bac5=path['join'](_0x0196('0x5'),_0x0196('0x6'),_0x0196('0x7'));var _0x3f5939=path[_0x0196('0x8')]('client',_0x2a7aaf['role']+'-'+_0x2a7aaf[_0x0196('0x9')]);return fs[_0x0196('0xa')](path['join'](_0x29bac5,_0x3f5939))['then'](function(){var _0x1bc77e=fileLogger(_0x0196('0xb'),path[_0x0196('0x8')](_0x29bac5,_0x3f5939));return _0x1bc77e;})['catch'](function(_0x4d1ef4){throw _0x4d1ef4;});}this['log']=function(_0x26d4ae,_0x22cd95,_0x297155,_0x528ec4){return _0x2cfb41(_0x26d4ae['user'])['then'](function(_0x3e363f){var _0x19de44=_0x3e363f[_0x22cd95];return _0x19de44;})[_0x0196('0xc')](function(_0x42e66e){var _0x24ab8f=_0x26d4ae[_0x0196('0xd')]?_0x26d4ae[_0x0196('0xd')]['id']:'no-user';var _0x3b4502=_0x528ec4[_0x0196('0xe')];var _0x4d1dfd=_0x528ec4[_0x0196('0xf')];var _0x41ae2f=new Date(Number(_0x4d1dfd));return _0x42e66e(_0x24ab8f,_0x41ae2f,_0x297155,_0x3b4502);})[_0x0196('0x10')](function(_0x2813fe){fileLogger(_0x0196('0xb'))[_0x0196('0x11')](_0x2813fe);});};}function setupLoggers(_0x2691aa){return new Promise(function(_0xb374d4){var _0x201e04=new ClientSideLogger();var _0x1bfbaa=fileLogger(_0x0196('0x12'));var _0x478025=fileLogger(_0x0196('0x13'));_0x2691aa['set']('client-side-logger',_0x201e04);_0x2691aa['use'](ewinston[_0x0196('0x14')]({'winstonInstance':_0x1bfbaa,'meta':![],'statusLevels':!![],'msg':function(_0x16f5cd,_0x2d26df){var _0x51642a=_0x0196('0x15');if(!_[_0x0196('0x16')](_0x16f5cd[_0x0196('0x17')])){_0x51642a+=_0x0196('0x18');var _0x3b919e=_0x16f5cd[_0x0196('0x17')];maskSensitiveData(_0x3b919e);}return safeTemplate(util[_0x0196('0x19')](_0x51642a,_0x16f5cd[_0x0196('0x1a')],_0x16f5cd['headers'][_0x0196('0x1b')]?_0x16f5cd[_0x0196('0x1c')]['x-forwarded-for']:_0x16f5cd[_0x0196('0x1d')]['remoteAddress']||_0x16f5cd['ip'],_0x16f5cd[_0x0196('0x1e')],_0x2d26df[_0x0196('0x1f')],_0x2d26df[_0x0196('0x20')],_0x16f5cd['user']?_0x16f5cd[_0x0196('0xd')]['id']:null,_0x16f5cd[_0x0196('0xd')]?_0x16f5cd['user']['name']:null,_0x16f5cd[_0x0196('0xd')]?_0x16f5cd['user'][_0x0196('0x21')]:null,_0x3b919e?util[_0x0196('0x22')](_0x3b919e,![],null):''));}}));_0x2691aa[_0x0196('0x23')](ewinston[_0x0196('0x14')]({'winstonInstance':_0x478025,'meta':![],'statusLevels':!![],'msg':function(_0xe7528,_0x311466){var _0x517d28=_0x0196('0x24');if(_0xe7528[_0x0196('0x17')]&&_0xe7528[_0x0196('0x17')][_0x0196('0x25')]&&_0xe7528['body'][_0x0196('0x26')]){_0x517d28='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)';}return util[_0x0196('0x19')](_0x517d28,_0xe7528[_0x0196('0x1a')],_0xe7528[_0x0196('0x1c')][_0x0196('0x1b')]?_0xe7528[_0x0196('0x1c')][_0x0196('0x1b')]:_0xe7528[_0x0196('0x1d')][_0x0196('0x27')]||_0xe7528['ip'],_0xe7528[_0x0196('0x1e')],_0x311466[_0x0196('0x1f')],_0x311466['responseTime'],_0xe7528[_0x0196('0xd')]?_0xe7528[_0x0196('0xd')]['id']:null,_0xe7528[_0x0196('0xd')]?_0xe7528['user'][_0x0196('0x9')]:null,_0xe7528['user']?_0xe7528[_0x0196('0xd')][_0x0196('0x21')]:null,_0xe7528[_0x0196('0x17')]&&_0xe7528[_0x0196('0x17')][_0x0196('0x25')]?_0xe7528[_0x0196('0x17')][_0x0196('0x25')]:_0x0196('0x28'),_0xe7528[_0x0196('0x17')]&&_0xe7528[_0x0196('0x17')][_0x0196('0x26')]?_0xe7528[_0x0196('0x17')][_0x0196('0x26')]:'',_0xe7528[_0x0196('0x17')]&&_0xe7528[_0x0196('0x17')][_0x0196('0x29')]?_0xe7528['body'][_0x0196('0x29')]:'');},'ignoreRoute':function(_0x58fac4){var _0xf66ecc=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0xf66ecc[_0x0196('0x2a')](_0x58fac4[_0x0196('0x1e')]);}}));return _0xb374d4();});}exports[_0x0196('0x2b')]=setupLoggers;