a4e14a5414597bec47ecdc4cc5ae6ea8b2479960
[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 _0x3939=['agent_name','url','setupLoggers','express-winston','util','./loggers','fileLogger','./safe-template','safeTemplate','join','/var','log','xcally','client','role','name','then','catch','user','no-user','data','timestamp','error','api','auth','set','client-side-logger','logger','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s','isEmpty','body','\x20body=%s','x-forwarded-for','connection','remoteAddress','responseTime','inspect','use','device','%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s\x20(id=%s\x20name=%s)','format','method','headers','statusCode','other','agent_id'];(function(_0x5a7d41,_0x4447e2){var _0x98d8fa=function(_0x2ce1cf){while(--_0x2ce1cf){_0x5a7d41['push'](_0x5a7d41['shift']());}};_0x98d8fa(++_0x4447e2);}(_0x3939,0xe9));var _0x9393=function(_0x58c27a,_0x38397b){_0x58c27a=_0x58c27a-0x0;var _0x43e572=_0x3939[_0x58c27a];return _0x43e572;};var fs=require('fs-extra');var _=require('lodash');var ewinston=require(_0x9393('0x0'));var path=require('path');var util=require(_0x9393('0x1'));var fileLogger=require(_0x9393('0x2'))[_0x9393('0x3')];var safeTemplate=require(_0x9393('0x4'))[_0x9393('0x5')];var maskSensitiveData=require('./mask-sensitive-data')['maskSensitiveData'];function ClientSideLogger(){function _0x32c224(_0x1744d7){var _0x2212b4=path[_0x9393('0x6')](_0x9393('0x7'),_0x9393('0x8'),_0x9393('0x9'));var _0x1cf42e=path[_0x9393('0x6')](_0x9393('0xa'),_0x1744d7[_0x9393('0xb')]+'-'+_0x1744d7[_0x9393('0xc')]);return fs['ensureDir'](path['join'](_0x2212b4,_0x1cf42e))[_0x9393('0xd')](function(){var _0x52f744=fileLogger(_0x9393('0xa'),path[_0x9393('0x6')](_0x2212b4,_0x1cf42e));return _0x52f744;})[_0x9393('0xe')](function(_0xadfaae){throw _0xadfaae;});}this[_0x9393('0x8')]=function(_0x27c6df,_0x540d62,_0x491ed,_0x23ae84){return _0x32c224(_0x27c6df[_0x9393('0xf')])[_0x9393('0xd')](function(_0x55f2b4){var _0x140e74=_0x55f2b4[_0x540d62];return _0x140e74;})[_0x9393('0xd')](function(_0x542325){var _0x268101=_0x27c6df[_0x9393('0xf')]?_0x27c6df[_0x9393('0xf')]['id']:_0x9393('0x10');var _0x10815c=_0x23ae84[_0x9393('0x11')];var _0x5c802e=_0x23ae84[_0x9393('0x12')];var _0x541c5f=new Date(Number(_0x5c802e));return _0x542325(_0x268101,_0x541c5f,_0x491ed,_0x10815c);})['catch'](function(_0x2e6ec3){fileLogger(_0x9393('0xa'))[_0x9393('0x13')](_0x2e6ec3);});};}function setupLoggers(_0x21a849){return new Promise(function(_0x27f8d0){var _0x3b82ab=new ClientSideLogger();var _0xe9dd21=fileLogger(_0x9393('0x14'));var _0x14ef8c=fileLogger(_0x9393('0x15'));_0x21a849[_0x9393('0x16')](_0x9393('0x17'),_0x3b82ab);_0x21a849['use'](ewinston[_0x9393('0x18')]({'winstonInstance':_0xe9dd21,'meta':![],'statusLevels':!![],'msg':function(_0x5af3ef,_0x9578bb){var _0x26de88=_0x9393('0x19');if(!_[_0x9393('0x1a')](_0x5af3ef[_0x9393('0x1b')])){_0x26de88+=_0x9393('0x1c');var _0x2dac23=_0x5af3ef[_0x9393('0x1b')];maskSensitiveData(_0x2dac23);}return safeTemplate(util['format'](_0x26de88,_0x5af3ef['method'],_0x5af3ef['headers'][_0x9393('0x1d')]?_0x5af3ef['headers'][_0x9393('0x1d')]:_0x5af3ef[_0x9393('0x1e')][_0x9393('0x1f')]||_0x5af3ef['ip'],_0x5af3ef['url'],_0x9578bb['statusCode'],_0x9578bb[_0x9393('0x20')],_0x5af3ef[_0x9393('0xf')]?_0x5af3ef[_0x9393('0xf')]['id']:null,_0x5af3ef[_0x9393('0xf')]?_0x5af3ef[_0x9393('0xf')]['name']:null,_0x5af3ef[_0x9393('0xf')]?_0x5af3ef[_0x9393('0xf')][_0x9393('0xb')]:null,_0x2dac23?util[_0x9393('0x21')](_0x2dac23,![],null):''));}}));_0x21a849[_0x9393('0x22')](ewinston[_0x9393('0x18')]({'winstonInstance':_0x14ef8c,'meta':![],'statusLevels':!![],'msg':function(_0x14cf9e,_0x31513f){var _0x4e12e1='%s\x20%s\x20%s\x20%s\x20%sms\x20id=%s\x20name=%s\x20role=%s\x20device=%s';if(_0x14cf9e[_0x9393('0x1b')]&&_0x14cf9e[_0x9393('0x1b')][_0x9393('0x23')]&&_0x14cf9e[_0x9393('0x1b')]['agent_id']){_0x4e12e1=_0x9393('0x24');}return util[_0x9393('0x25')](_0x4e12e1,_0x14cf9e[_0x9393('0x26')],_0x14cf9e['headers'][_0x9393('0x1d')]?_0x14cf9e[_0x9393('0x27')][_0x9393('0x1d')]:_0x14cf9e[_0x9393('0x1e')][_0x9393('0x1f')]||_0x14cf9e['ip'],_0x14cf9e['url'],_0x31513f[_0x9393('0x28')],_0x31513f[_0x9393('0x20')],_0x14cf9e['user']?_0x14cf9e[_0x9393('0xf')]['id']:null,_0x14cf9e[_0x9393('0xf')]?_0x14cf9e[_0x9393('0xf')][_0x9393('0xc')]:null,_0x14cf9e[_0x9393('0xf')]?_0x14cf9e[_0x9393('0xf')]['role']:null,_0x14cf9e[_0x9393('0x1b')]&&_0x14cf9e['body']['device']?_0x14cf9e[_0x9393('0x1b')][_0x9393('0x23')]:_0x9393('0x29'),_0x14cf9e[_0x9393('0x1b')]&&_0x14cf9e[_0x9393('0x1b')][_0x9393('0x2a')]?_0x14cf9e[_0x9393('0x1b')]['agent_id']:'',_0x14cf9e[_0x9393('0x1b')]&&_0x14cf9e[_0x9393('0x1b')][_0x9393('0x2b')]?_0x14cf9e[_0x9393('0x1b')][_0x9393('0x2b')]:'');},'ignoreRoute':function(_0x189a50){var _0x44e0f6=/\/api\/users\/[0-9]+\/(login|logout)/gi;return!_0x44e0f6['test'](_0x189a50[_0x9393('0x2c')]);}}));return _0x27f8d0();});}exports[_0x9393('0x2d')]=setupLoggers;