From 3cfe5ff598b8e77be59e83703691590961d1899f Mon Sep 17 00:00:00 2001 From: Adrien Buet Date: Fri, 4 May 2018 17:30:18 +0200 Subject: [PATCH] Add flush method Add flushing capabilities to public API so that messages can be sent immediatly (in case of window unload for ex) --- src/logmatic.js | 8 +++++++- src/logmatic.min.js | 2 +- src/logmatic.min.js.map | 2 +- test/test-client.html | 14 ++++++++++++++ 4 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/logmatic.js b/src/logmatic.js index d725278..fd35b92 100644 --- a/src/logmatic.js +++ b/src/logmatic.js @@ -171,6 +171,11 @@ queue(payload); }; + var flush = function() { + _lingerManager.reset(); + post(); + } + var queue = function (payload) { // Set metas assign(_metas, payload); @@ -422,7 +427,8 @@ setIPTracking: setIPTracking, setUserAgentTracking: setUserAgentTracking, setURLTracking: setURLTracking, - setBulkOptions: setBulkOptions + setBulkOptions: setBulkOptions, + flush: flush }; })) ; diff --git a/src/logmatic.min.js b/src/logmatic.min.js index 6574bfd..eb579a0 100644 --- a/src/logmatic.min.js +++ b/src/logmatic.min.js @@ -1,2 +1,2 @@ -!function(a,b){"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?module.exports=b():a.logmatic=b()}(this,function(){function a(a,b){if(a)for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c])}function b(a){var b={};b.MODE={IMMEDIATE:0,LINGER:1,ERROR:2};var c=500,d=3e4,e=null,f=b.MODE.LINGER,g=0,h=a;return b.reset=function(){b.isScheduled()&&clearTimeout(e),e=null},b.isScheduled=function(){return null!==e},b.setMode=function(a){f=a,f!==b.MODE.ERROR&&(g=0)},b.postpone=function(a){var i;switch(b.reset(),f){case b.MODE.IMMEDIATE:i=0;break;case b.MODE.LINGER:i=h;break;case b.MODE.ERROR:var j=c*Math.pow(2,g);g++,i=Math.min(j,d)}e=setTimeout(a,i)},b}function c(a){a&&(j=a),console&&[{f:"log",l:"info"},{f:"info"},{f:"trace"},{f:"warn"},{f:"error"}].forEach(function(a){var b=a.f,c=a.l||a.f,d=console[b];console[b]=function(){var a=null;j&&(a={},a[j]=c);var b=Array.prototype.slice.call(arguments).map(function(a){return"object"==typeof a?JSON.stringify(a):String(a)}).join(" ");y(b,a),d.apply?d.apply(console,arguments):d(b)}})}function d(a){if(a){var b=window.TraceKit;if(b)b.report.subscribe(function(b){var c={};c[a]=b,j&&(c[j]="error"),y(b.message,c)});else{var c=window.onerror;window.onerror=function(b,d,e,f){var g={};g[a]={mode:"JSException",url:d,line:e,column:f},j&&(g[j]="error"),y(b,g),c&&"function"==typeof c&&c.apply(window,arguments)}}}}var e,f,g,h,i="https://api.logmatic.io/v1/input/",j="severity",k=500,l=10,m=-1,n=[],o=204800,p=b(k),q=function(a){i+=a},r=function(a){i=a},s=function(a){a=a||{},null!=a.lingerMs&&a.lingerMs>=0&&(k=a.lingerMs),null!=a.maxPostCount&&(a.maxPostCount<1&&(a.maxPostCount=1),l=a.maxPostCount),null!=a.maxWaitingCount&&(m=a.maxWaitingCount),null!=a.maxContentSize&&(o=a.maxContentSize)},t=function(a,b){y(a,b,"trace")},u=function(a,b){y(a,b,"debug")},v=function(a,b){y(a,b,"info")},w=function(a,b){y(a,b,"warn")},x=function(a,b){y(a,b,"error")},y=function(b,c,d){if(i){var e={message:b};d?e[j]=d:e[j]="info",a(c,e),z(e)}},z=function(b){a(e,b),h&&(b[h]=window.location.href),n=n||[],n.push(JSON.stringify(b)),m>=0&&n.length>m&&n.shift(),A()},A=function(){p.isScheduled()||p.postpone(B)},B=function(){function b(a){200===a||0===a?n.length>0?p.setMode(p.MODE.IMMEDIATE):p.setMode(p.MODE.LINGER):p.setMode(p.MODE.ERROR),p.reset(),0!==n.length&&A()}for(var c=[],d=0;n.length>0&&c.lengtho){if(j.length>o){var k={severity:"warn",message:"Message dropped as its size exceeded the hard limit of 200 kBytes"};a(e,k),JSON.stringify(k).length>o&&(k={severity:"error",message:"Message dropped because the context size provided exceeded the hard limit of 200 kBytes"}),k[h]=window.location.href,j=JSON.stringify(k)}n.unshift(j);break}c.push(j)}if(0===c.length)return void b(0);var m,q="["+c.join(",")+"]";m="undefined"!=typeof XDomainRequest?new XDomainRequest:new XMLHttpRequest,m.open("POST",i,!0),"undefined"==typeof XDomainRequest&&(m.setRequestHeader("Content-Type","application/json; charset=UTF-8"),f&&m.setRequestHeader("X-Logmatic-Add-IP",f),g&&m.setRequestHeader("X-Logmatic-Add-UserAgent",g)),m.onerror=function(a){b(a.target.status)},m.onload=function(a){b(a.target.status)},m.send(q)},C=function(a){e=a},D=function(a,b){e[a]=b},E=function(a){h=a},F=function(a){f=a},G=function(a){g=a};return{init:q,log:v,trace:t,debug:u,info:v,warn:w,error:x,forceEndpoint:r,setMetas:C,addMeta:D,setSendErrors:d,setSendConsoleErrors:d,setSendConsoleLogs:c,setIPTracking:F,setUserAgentTracking:G,setURLTracking:E,setBulkOptions:s}}); +!function(a,b){"function"==typeof define&&define.amd?define([],b):"object"==typeof exports?module.exports=b():a.logmatic=b()}(this,function(){function a(a,b){if(a)for(var c in a)a.hasOwnProperty(c)&&(b[c]=a[c])}function b(a){var b={};b.MODE={IMMEDIATE:0,LINGER:1,ERROR:2};var c=null,d=b.MODE.LINGER,e=0,f=a;return b.reset=function(){b.isScheduled()&&clearTimeout(c),c=null},b.isScheduled=function(){return null!==c},b.setMode=function(a){(d=a)!==b.MODE.ERROR&&(e=0)},b.postpone=function(a){var g;switch(b.reset(),d){case b.MODE.IMMEDIATE:g=0;break;case b.MODE.LINGER:g=f;break;case b.MODE.ERROR:var h=500*Math.pow(2,e);e++,g=Math.min(h,3e4)}c=setTimeout(a,g)},b}function c(a){a&&(j=a),console&&[{f:"log",l:"info"},{f:"info"},{f:"trace"},{f:"warn"},{f:"error"}].forEach(function(a){var b=a.f,c=a.l||a.f,d=console[b];console[b]=function(){var a=null;j&&(a={},a[j]=c);var b=Array.prototype.slice.call(arguments).map(function(a){return"object"==typeof a?JSON.stringify(a):String(a)}).join(" ");y(b,a),d.apply?d.apply(console,arguments):d(b)}})}function d(a){if(a){var b=window.TraceKit;if(b)b.report.subscribe(function(b){var c={};c[a]=b,j&&(c[j]="error"),y(b.message,c)});else{var c=window.onerror;window.onerror=function(b,d,e,f){var g={};g[a]={mode:"JSException",url:d,line:e,column:f},j&&(g[j]="error"),y(b,g),c&&"function"==typeof c&&c.apply(window,arguments)}}}}var e,f,g,h="https://api.logmatic.io/v1/input/",i={},j="severity",k=500,l=10,m=-1,n=[],o=204800,p=b(k),q=function(a){h+=a},r=function(a){h=a},s=function(a){a=a||{},null!=a.lingerMs&&a.lingerMs>=0&&(k=a.lingerMs),null!=a.maxPostCount&&(a.maxPostCount<1&&(a.maxPostCount=1),l=a.maxPostCount),null!=a.maxWaitingCount&&(m=a.maxWaitingCount),null!=a.maxContentSize&&(o=a.maxContentSize)},t=function(a,b){y(a,b,"trace")},u=function(a,b){y(a,b,"debug")},v=function(a,b){y(a,b,"info")},w=function(a,b){y(a,b,"warn")},x=function(a,b){y(a,b,"error")},y=function(b,c,d){if(h){var e={message:b};e[j]=d||"info",a(c,e),A(e)}},z=function(){p.reset(),C()},A=function(b){a(i,b),g&&(b[g]=window.location.href),n=n||[],n.push(JSON.stringify(b)),m>=0&&n.length>m&&n.shift(),B()},B=function(){p.isScheduled()||p.postpone(C)},C=function(){function b(a){200===a||0===a?n.length>0?p.setMode(p.MODE.IMMEDIATE):p.setMode(p.MODE.LINGER):p.setMode(p.MODE.ERROR),p.reset(),0!==n.length&&B()}for(var c=[],d=0;n.length>0&&c.lengtho){if(j.length>o){var k={severity:"warn",message:"Message dropped as its size exceeded the hard limit of 200 kBytes"};a(i,k),JSON.stringify(k).length>o&&(k={severity:"error",message:"Message dropped because the context size provided exceeded the hard limit of 200 kBytes"}),k[g]=window.location.href,j=JSON.stringify(k)}n.unshift(j);break}c.push(j)}if(0===c.length)return void b(0);var m,q="["+c.join(",")+"]";m="undefined"!=typeof XDomainRequest?new XDomainRequest:new XMLHttpRequest,m.open("POST",h,!0),"undefined"==typeof XDomainRequest&&(m.setRequestHeader("Content-Type","application/json; charset=UTF-8"),e&&m.setRequestHeader("X-Logmatic-Add-IP",e),f&&m.setRequestHeader("X-Logmatic-Add-UserAgent",f)),m.onerror=function(a){b(a.target.status)},m.onload=function(a){b(a.target.status)},m.send(q)},D=function(a){i=a},E=function(a,b){i[a]=b},F=function(a){g=a};return{init:q,log:v,trace:t,debug:u,info:v,warn:w,error:x,forceEndpoint:r,setMetas:D,addMeta:E,setSendErrors:d,setSendConsoleErrors:d,setSendConsoleLogs:c,setIPTracking:function(a){e=a},setUserAgentTracking:function(a){f=a},setURLTracking:F,setBulkOptions:s,flush:z}}); //# sourceMappingURL=logmatic.min.js.map \ No newline at end of file diff --git a/src/logmatic.min.js.map b/src/logmatic.min.js.map index 3d71d7b..0eb003d 100644 --- a/src/logmatic.min.js.map +++ b/src/logmatic.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["logmatic.js"],"names":["root","factory","define","amd","exports","module","logmatic","this","assign","fromObject","toObject","key","hasOwnProperty","createLingerManager","lingerPeriodMs","manager","MODE","IMMEDIATE","LINGER","ERROR","_backOffPeriodMs","_backOffMaxPeriodMs","_alarm","_mode","_backOffFactor","_lingerPeriodMs","reset","isScheduled","clearTimeout","setMode","mode","postpone","_callback","timeMs","backOffPeriodMs","Math","pow","min","setTimeout","setSendConsoleLogs","consoleLevelAttribute","_levelAttr","console","f","l","forEach","decl","funName","level","oldFun","props","message","Array","prototype","slice","call","arguments","map","a","JSON","stringify","String","join","log","apply","setSendErrors","errorAttribute","TraceKit","window","report","subscribe","errorReport","errorProperties","oldhandler","onerror","url","line","column","_metas","_ipTrackingAttr","_uaTrackingAttr","_urlTrackingAttr","_url","_bulkLingerMs","_bulkMaxPostCount","_bulkMaxWaitingCount","_queue","_maxContentSize","_lingerManager","init","forceEndpoint","setBulkOptions","opts","lingerMs","maxPostCount","maxWaitingCount","maxContentSize","trace","context","debug","info","warn","error","severity","payload","queue","location","href","push","length","shift","tryPost","post","handleExit","status","data","contentSize","item","newItem","unshift","request","XDomainRequest","XMLHttpRequest","open","setRequestHeader","response","target","onload","send","setMetas","metas","addMeta","value","setURLTracking","urlTrackingAttr","setIPTracking","ipTrackingAttr","setUserAgentTracking","uaTrackingAttr","setSendConsoleErrors"],"mappings":"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","file":"logmatic.min.js"} \ No newline at end of file +{"version":3,"sources":["logmatic.js"],"names":["root","factory","define","amd","exports","module","logmatic","this","assign","fromObject","toObject","key","hasOwnProperty","createLingerManager","lingerPeriodMs","manager","MODE","IMMEDIATE","LINGER","ERROR","_alarm","_mode","_backOffFactor","_lingerPeriodMs","reset","isScheduled","clearTimeout","setMode","mode","postpone","_callback","timeMs","backOffPeriodMs","Math","pow","min","setTimeout","setSendConsoleLogs","consoleLevelAttribute","_levelAttr","console","f","l","forEach","decl","funName","level","oldFun","props","message","Array","prototype","slice","call","arguments","map","a","JSON","stringify","String","join","log","apply","setSendErrors","errorAttribute","TraceKit","window","report","subscribe","errorReport","errorProperties","oldhandler","onerror","url","line","column","_ipTrackingAttr","_uaTrackingAttr","_urlTrackingAttr","_url","_metas","_bulkLingerMs","_bulkMaxPostCount","_bulkMaxWaitingCount","_queue","_maxContentSize","_lingerManager","init","forceEndpoint","setBulkOptions","opts","lingerMs","maxPostCount","maxWaitingCount","maxContentSize","trace","context","debug","info","warn","error","severity","payload","queue","flush","post","location","href","push","length","shift","tryPost","handleExit","status","data","contentSize","item","newItem","unshift","request","XDomainRequest","XMLHttpRequest","open","setRequestHeader","response","target","onload","send","setMetas","metas","addMeta","value","setURLTracking","urlTrackingAttr","setSendConsoleErrors","setIPTracking","ipTrackingAttr","setUserAgentTracking","uaTrackingAttr"],"mappings":"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","file":"logmatic.min.js"} \ No newline at end of file diff --git a/test/test-client.html b/test/test-client.html index e1e1966..e4d9aad 100644 --- a/test/test-client.html +++ b/test/test-client.html @@ -20,6 +20,11 @@ logmatic.log('Button clicked', { name: 'My button name' }); } + function btnFlushClicked () { + logmatic.log('Flushing'); + logmatic.flush(); + } + function fireError () { foo(); } @@ -40,6 +45,11 @@ console.info('This is a fake console.info!!'); console.warn('This is a fake console.warn!!'); } + + window.onbeforeunload = function(e) { + logmatic.log('Unloading window'); + logmatic.flush(); + } @@ -48,5 +58,9 @@
+
+ +
+ logmatic-js