UNPKG

advanced-logger

Version:

Advanced logger module extendable with plugins. Works in nodejs and browsers

5 lines 13.7 kB
"use strict";var advancedLogger=(()=>{var Re=Object.create;var A=Object.defineProperty;var _e=Object.getOwnPropertyDescriptor;var De=Object.getOwnPropertyNames,te=Object.getOwnPropertySymbols,je=Object.getPrototypeOf,ie=Object.prototype.hasOwnProperty,Fe=Object.prototype.propertyIsEnumerable;var re=(t,e,r)=>e in t?A(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,h=(t,e)=>{for(var r in e||(e={}))ie.call(e,r)&&re(t,r,e[r]);if(te)for(var r of te(e))Fe.call(e,r)&&re(t,r,e[r]);return t};var Me=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Pe=(t,e)=>{for(var r in e)A(t,r,{get:e[r],enumerable:!0})},ne=(t,e,r,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of De(e))!ie.call(t,n)&&n!==r&&A(t,n,{get:()=>e[n],enumerable:!(i=_e(e,n))||i.enumerable});return t};var we=(t,e,r)=>(r=t!=null?Re(je(t)):{},ne(e||!t||!t.__esModule?A(r,"default",{value:t,enumerable:!0}):r,t)),ze=t=>ne(A({},"__esModule",{value:!0}),t);var m=(t,e,r)=>new Promise((i,n)=>{var l=f=>{try{o(r.next(f))}catch(d){n(d)}},s=f=>{try{o(r.throw(f))}catch(d){n(d)}},o=f=>f.done?i(f.value):Promise.resolve(f.value).then(l,s);o((r=r.apply(t,e)).next())});var Le=Me((pr,Se)=>{"use strict";Se.exports=R;R.default=R;R.stable=Ee;R.stableStringify=Ee;var J="[...]",ye="[Circular]",b=[],y=[];function be(){return{depthLimit:Number.MAX_SAFE_INTEGER,edgesLimit:Number.MAX_SAFE_INTEGER}}function R(t,e,r,i){typeof i=="undefined"&&(i=be()),K(t,"",0,[],void 0,0,i);var n;try{y.length===0?n=JSON.stringify(t,e,r):n=JSON.stringify(t,Ie(e),r)}catch(s){return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;b.length!==0;){var l=b.pop();l.length===4?Object.defineProperty(l[0],l[1],l[3]):l[0][l[1]]=l[2]}}return n}function C(t,e,r,i){var n=Object.getOwnPropertyDescriptor(i,r);n.get!==void 0?n.configurable?(Object.defineProperty(i,r,{value:t}),b.push([i,r,e,n])):y.push([e,r,t]):(i[r]=t,b.push([i,r,e]))}function K(t,e,r,i,n,l,s){l+=1;var o;if(typeof t=="object"&&t!==null){for(o=0;o<i.length;o++)if(i[o]===t){C(ye,t,e,n);return}if(typeof s.depthLimit!="undefined"&&l>s.depthLimit){C(J,t,e,n);return}if(typeof s.edgesLimit!="undefined"&&r+1>s.edgesLimit){C(J,t,e,n);return}if(i.push(t),Array.isArray(t))for(o=0;o<t.length;o++)K(t[o],o,o,i,t,l,s);else{var f=Object.keys(t);for(o=0;o<f.length;o++){var d=f[o];K(t[d],d,o,i,t,l,s)}}i.pop()}}function yt(t,e){return t<e?-1:t>e?1:0}function Ee(t,e,r,i){typeof i=="undefined"&&(i=be());var n=Q(t,"",0,[],void 0,0,i)||t,l;try{y.length===0?l=JSON.stringify(n,e,r):l=JSON.stringify(n,Ie(e),r)}catch(o){return JSON.stringify("[unable to serialize, circular reference is too complex to analyze]")}finally{for(;b.length!==0;){var s=b.pop();s.length===4?Object.defineProperty(s[0],s[1],s[3]):s[0][s[1]]=s[2]}}return l}function Q(t,e,r,i,n,l,s){l+=1;var o;if(typeof t=="object"&&t!==null){for(o=0;o<i.length;o++)if(i[o]===t){C(ye,t,e,n);return}try{if(typeof t.toJSON=="function")return}catch(E){return}if(typeof s.depthLimit!="undefined"&&l>s.depthLimit){C(J,t,e,n);return}if(typeof s.edgesLimit!="undefined"&&r+1>s.edgesLimit){C(J,t,e,n);return}if(i.push(t),Array.isArray(t))for(o=0;o<t.length;o++)Q(t[o],o,o,i,t,l,s);else{var f={},d=Object.keys(t).sort(yt);for(o=0;o<d.length;o++){var c=d[o];Q(t[c],c,o,i,t,l,s),f[c]=t[c]}if(typeof n!="undefined")b.push([n,e,t]),n[e]=f;else return f}i.pop()}}function Ie(t){return t=typeof t!="undefined"?t:function(e,r){return r},function(e,r){if(y.length>0)for(var i=0;i<y.length;i++){var n=y[i];if(n[1]===e&&n[0]===r){r=n[2],y.splice(i,1);break}}return t.call(this,e,r)}}});var Lt={};Pe(Lt,{AdvancedLogger:()=>N,TransformationEnum:()=>q,service:()=>St,strategy:()=>It});var u=class{constructor(){this.listeners=new Map}on(e,r){var i;return((i=this.listeners.get(e))!=null?i:this.set(e)).add(r),this}once(e,r){let i=(...n)=>{this.off(e,i),r(...n)};return this.on(e,i)}off(e,r){var i;return(i=this.listeners.get(e))==null||i.delete(r),this}removeListener(e,r){return this.off(e,r)}emit(e,...r){let i=this.listeners.get(e);if(!i||i.size===0)return!1;for(let n of[...i])n(...r);return!0}removeAllListeners(e){return e?this.listeners.delete(e):this.listeners.clear(),this}set(e){let r=new Set;return this.listeners.set(e,r),r}};function Ge(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var v=Ge;var Be=typeof global=="object"&&global&&global.Object===Object&&global,oe=Be;var Ue=typeof self=="object"&&self&&self.Object===Object&&self,Xe=oe||Ue||Function("return this")(),U=Xe;var qe=function(){return U.Date.now()},X=qe;var Je=/\s/;function $e(t){for(var e=t.length;e--&&Je.test(t.charAt(e)););return e}var se=$e;var Ve=/^\s+/;function He(t){return t&&t.slice(0,se(t)+1).replace(Ve,"")}var le=He;var We=U.Symbol,I=We;var fe=Object.prototype,Ze=fe.hasOwnProperty,Ke=fe.toString,x=I?I.toStringTag:void 0;function Qe(t){var e=Ze.call(t,x),r=t[x];try{t[x]=void 0;var i=!0}catch(l){}var n=Ke.call(t);return i&&(e?t[x]=r:delete t[x]),n}var ae=Qe;var Ye=Object.prototype,ke=Ye.toString;function et(t){return ke.call(t)}var de=et;var tt="[object Null]",rt="[object Undefined]",ue=I?I.toStringTag:void 0;function it(t){return t==null?t===void 0?rt:tt:ue&&ue in Object(t)?ae(t):de(t)}var me=it;function nt(t){return t!=null&&typeof t=="object"}var ge=nt;var ot="[object Symbol]";function st(t){return typeof t=="symbol"||ge(t)&&me(t)==ot}var ce=st;var pe=NaN,lt=/^[-+]0x[0-9a-f]+$/i,ft=/^0b[01]+$/i,at=/^0o[0-7]+$/i,dt=parseInt;function ut(t){if(typeof t=="number")return t;if(ce(t))return pe;if(v(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=v(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=le(t);var r=ft.test(t);return r||at.test(t)?dt(t.slice(2),r?2:8):lt.test(t)?pe:+t}var Z=ut;var mt="Expected a function",gt=Math.max,ct=Math.min;function pt(t,e,r){var i,n,l,s,o,f,d=0,c=!1,E=!1,V=!0;if(typeof t!="function")throw new TypeError(mt);e=Z(e)||0,v(r)&&(c=!!r.leading,E="maxWait"in r,l=E?gt(Z(r.maxWait)||0,e):l,V="trailing"in r?!!r.trailing:V);function H(a){var p=i,T=n;return i=n=void 0,d=a,s=t.apply(T,p),s}function Ae(a){return d=a,o=setTimeout(B,e),c?H(a):s}function xe(a){var p=a-f,T=a-d,ee=e-p;return E?ct(ee,l-T):ee}function Y(a){var p=a-f,T=a-d;return f===void 0||p>=e||p<0||E&&T>=l}function B(){var a=X();if(Y(a))return k(a);o=setTimeout(B,xe(a))}function k(a){return o=void 0,V&&i?H(a):(i=n=void 0,s)}function Oe(){o!==void 0&&clearTimeout(o),d=0,i=f=n=o=void 0}function Ne(){return o===void 0?s:k(X())}function W(){var a=X(),p=Y(a);if(i=arguments,n=this,f=a,p){if(o===void 0)return Ae(f);if(E)return clearTimeout(o),o=setTimeout(B,e),H(f)}return o===void 0&&(o=setTimeout(B,e)),s}return W.cancel=Oe,W.flush=Ne,W}var he=pt;var ht="Expected a function";function vt(t,e,r){var i=!0,n=!0;if(typeof t!="function")throw new TypeError(ht);return v(r)&&(i="leading"in r?!!r.leading:i,n="trailing"in r?!!r.trailing:n),he(t,e,{leading:i,maxWait:e,trailing:n})}var S=vt;var ve="-",L={getLogIdByFields(t,e){return e.map(r=>`${r}${ve}${t[r]}`).join(ve)},tryJSONStringify(t){try{return JSON.stringify(t)}catch(e){return""}}};var q=(e=>(e[e.RAPID_FIRE_GROUPING=0]="RAPID_FIRE_GROUPING",e))(q||{});var O=class{constructor(e){this.groupLeftIndex=-1;if(this.logs=[],this.eventEmitter=new u,this.config=e,this.identityMap=new Map,this.config.transformations){let r=this.config.transformations.find(i=>i.type===0);r&&(this.groupableConfig=r.configuration,this.throttledOnGroupFinalize=S(this.onGroupFinalize.bind(this),this.groupableConfig.interval,{trailing:!0,leading:!1}),this.eventEmitter.on("add",this.throttledOnGroupFinalize))}}add(e){if(this.groupableConfig){let r=L.getLogIdByFields(e,this.groupableConfig.groupIdentityFields);this.identityMap.has(r)||this.logs.push(e),this.onAddToGroup(e)}else this.logs.push(e);this.eventEmitter.emit("add",{logCount:this.size()})}clear(){this.logs.length=0,this.eventEmitter.emit("clear")}getAll(){return this.throttledOnGroupFinalize&&this.throttledOnGroupFinalize.flush(),this.logs.slice()}size(){return this.logs.length}destroy(){this.throttledOnGroupFinalize&&this.throttledOnGroupFinalize.cancel(),this.logs.splice(0),this.eventEmitter.removeAllListeners()}onAddToGroup(e){let r=L.getLogIdByFields(e,this.groupableConfig.groupIdentityFields);if(this.identityMap.has(r)){let i=this.identityMap.get(r);this.identityMap.set(r,(i||0)+1)}else this.identityMap.set(r,1)}onGroupFinalize(){let e=this.logs.length;if(e>0)for(let r=this.groupLeftIndex!==-1?this.groupLeftIndex:0;r<e;r++){let i=this.logs[r],n=L.getLogIdByFields(i,this.groupableConfig.groupIdentityFields);Object.assign(i,{[this.groupableConfig.groupFieldName]:this.identityMap.has(n)?this.identityMap.get(n):1})}this.groupLeftIndex=e>0?e-1:-1,this.identityMap.clear()}};var N=class{constructor(e){this.configuration=e,this.logStore=new O({transformations:this.configuration.transformations}),this.strategy=this.configuration.strategy,this.service=this.configuration.service,this.logStore.eventEmitter.on("add",this.onAdd.bind(this)),this.logStore.eventEmitter.on("clear",this.onClear.bind(this)),this.logStore.eventEmitter.on("error",this.onStoreError.bind(this)),this.strategy.eventEmitter.on("send",this.onSend.bind(this)),this.strategy.eventEmitter.on("error",this.onStrategyError.bind(this))}log(e){this.logStore.add(e)}sendAllLogs(){this.strategy.sendAll()}destroy(){this.logStore.destroy(),this.strategy.destroy(),this.service.destroy()}onStoreError(e){console.error(e)}onAdd(e){this.strategy.onAdd(e)}onClear(){this.strategy.onClear()}onStrategyError(e){console.error(e)}onSend(){return m(this,null,function*(){if(this.logStore.size()>0){let e=this.logStore.getAll();this.logStore.clear();try{yield this.service.sendAllLogs(e)}catch(r){console.error(r)}}})}};var Te=we(Le());var Ce={request(t,e,r){return m(this,null,function*(){let i=yield fetch(t.url,{method:t.method,headers:e,body:r});if(!i.ok)throw new Error(`Request to ${t.url} failed with status ${i.status}`);return i})},delayedRetry(t,e,r){return new Promise((i,n)=>{setTimeout(()=>r().then(i).catch(n),e)}).catch(i=>t>1?Ce.delayedRetry(t-1,e,r):Promise.reject(i))}},$=Ce;var g=class{constructor(e){this.serviceConfig=h({},e.serviceConfig),this.defaultLogConfig=h({},e.defaultLogConfig),e.serializer&&(this.serializer=e.serializer)}serializer(e){return L.tryJSONStringify(e)||(0,Te.default)(e)}sendAllLogs(e){return m(this,null,function*(){var n,l,s,o,f,d;let r=yield this.preparePayload(e),i=this.getHeaders();try{return yield $.request(this.serviceConfig,i,r)}catch(c){if(((l=(n=this.serviceConfig)==null?void 0:n.retryAttempts)!=null?l:0)>0)return $.delayedRetry((o=(s=this.serviceConfig)==null?void 0:s.retryAttempts)!=null?o:0,(d=(f=this.serviceConfig)==null?void 0:f.retryInterval)!=null?d:0,$.request.bind(this,this.serviceConfig,i,r));throw c}})}preparePayload(e){return m(this,null,function*(){return e.map(i=>this.serializer(h(h({},this.defaultLogConfig),i))).join(` `)})}destroy(){}getHeaders(){return{}}};var _=class{preparePayload(e){return m(this,null,function*(){return e.map(r=>this.serializer(r))})}sendAllLogs(e){return m(this,null,function*(){console.log(e)})}destroy(){}serializer(e){return e}};var bt="Index",Et="index",D=class extends g{preparePayload(e){return m(this,null,function*(){let r=[];return e.forEach(i=>{let n=h(h({},this.defaultLogConfig),i);r.push(this.serializer(this.getLogMetaConfig(n[this.serviceConfig.logMetaIndexField||bt]))),r.push(this.serializer(n))}),`${r.join(` `)} `})}getHeaders(){return{"Content-Type":"application/json"}}getLogMetaConfig(e){return{index:{_index:e||Et,_type:"_doc"}}}};var j=class extends g{getHeaders(){return{"Content-Type":"text/plain"}}};var F=class extends g{getHeaders(){let e=this.serviceConfig;return{"Content-Type":"application/json","X-Sumo-Category":e.sourceCategory,"X-Sumo-Host":e.host,"X-Sumo-Name":e.sourceName}}};var M=class{constructor(){this.eventEmitter=new u}onAdd(e){this.eventEmitter.emit("send")}onClear(){}sendAll(){}destroy(){this.eventEmitter.removeAllListeners()}};var P=class{constructor(e){this.MAX_BUNDLE_SIZE=100;this.eventEmitter=new u,e.maxBundle&&(this.MAX_BUNDLE_SIZE=e.maxBundle)}onAdd(e){e&&e.logCount>=this.MAX_BUNDLE_SIZE&&this.eventEmitter.emit("send")}onClear(){}sendAll(){this.eventEmitter.emit("send")}destroy(){this.eventEmitter.removeAllListeners()}};var w=class{constructor(e){this.SEND_INTERVAL=15e3;this.eventEmitter=new u,e.interval&&(this.SEND_INTERVAL=e.interval),this.intervalSend=S(this.send.bind(this),this.SEND_INTERVAL,{leading:!1,trailing:!0})}onAdd(e){e&&e.logCount>0&&this.intervalSend()}onClear(){}sendAll(){this.eventEmitter.emit("send")}destroy(){this.intervalSend.cancel(),this.eventEmitter.removeAllListeners()}send(){this.eventEmitter.emit("send")}};var z=class{constructor(){this.eventEmitter=new u}onAdd(e){}onClear(){}sendAll(){this.eventEmitter.emit("send")}destroy(){this.eventEmitter.removeAllListeners()}};var G=class{constructor(e={}){this.MAX_BUNDLE_SIZE=100;this.SEND_INTERVAL=15e3;this.eventEmitter=new u,e.maxBundle&&(this.MAX_BUNDLE_SIZE=e.maxBundle),e.interval&&(this.SEND_INTERVAL=e.interval),this.intervalSend=S(this.send.bind(this),this.SEND_INTERVAL,{leading:!1,trailing:!0})}onAdd(e){e&&(e.logCount>=this.MAX_BUNDLE_SIZE?(this.intervalSend.cancel(),this.eventEmitter.emit("send")):e.logCount>0&&this.intervalSend())}onClear(){}sendAll(){this.eventEmitter.emit("send")}destroy(){this.intervalSend.cancel(),this.eventEmitter.removeAllListeners()}send(){this.eventEmitter.emit("send")}};var It={InstantStrategy:M,OnBundleSizeStrategy:P,OnRequestStrategy:z,OnIntervalStrategy:w,HybridStrategy:G},St={BaseRemoteService:g,SumologicService:F,LogglyService:j,ConsoleService:_,ElasticsearchService:D};return ze(Lt);})(); //# sourceMappingURL=index.global.js.map