From 2544f10e5277203a59aaf376dfbfcfb7700b3cd6 Mon Sep 17 00:00:00 2001 From: Nicolas COSME Date: Mon, 1 Jun 2015 16:28:33 +0200 Subject: [PATCH 1/3] Add tags and browser info --- src/loggly.tracker.js | 274 +++++++++++++++++++++++++++++++++--------- 1 file changed, 215 insertions(+), 59 deletions(-) diff --git a/src/loggly.tracker.js b/src/loggly.tracker.js index 3b0bb1d..7fed510 100644 --- a/src/loggly.tracker.js +++ b/src/loggly.tracker.js @@ -1,7 +1,7 @@ (function(window, document) { var LOGGLY_INPUT_PREFIX = 'http' + ( ('https:' === document.location.protocol ? 's' : '') ) + '://', LOGGLY_COLLECTOR_DOMAIN = 'logs-01.loggly.com', - LOGGLY_INPUT_SUFFIX = '.gif?', + LOGGLY_INPUT_SUFFIX = '/1*1.gif?', LOGGLY_SESSION_KEY = 'logglytrackingsession', LOGGLY_SESSION_KEY_LENGTH = LOGGLY_SESSION_KEY.length + 1; @@ -10,52 +10,59 @@ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { var r = Math.random()*16|0, v = c == 'x' ? r : (r&0x3|0x8); return v.toString(16); - }); + }); } - + function LogglyTracker() { this.key = false; - this.sendConsoleErrors = false; - } - - function setKey(tracker, key) { + this.sendConsoleErrors = false; + } + + function setKey(tracker, key, tags) { tracker.key = key; + tracker.tags = tags; tracker.setSession(); setInputUrl(tracker); } - - function setSendConsoleError(tracker, sendConsoleErrors) { - tracker.sendConsoleErrors = sendConsoleErrors; - - if(tracker.sendConsoleErrors === true){ - var _onerror = window.onerror; - //send console error messages to Loggly - window.onerror = function (msg, url, line, col){ - tracker.push({ - category: 'BrowserJsException', - exception: { - message: msg, - url: url, - lineno: line, - colno: col, - } - }); - - if (_onerror && typeof _onerror === 'function') { - _onerror.apply(window, arguments); - } - }; - } - } - + + function setSendConsoleError(tracker, sendConsoleErrors) { + tracker.sendConsoleErrors = sendConsoleErrors; + + if(tracker.sendConsoleErrors === true){ + var _onerror = window.onerror; + //send console error messages to Loggly + window.onerror = function (msg, url, line, col){ + tracker.push({ + category: 'BrowserJsException', + exception: { + message: msg, + url: url, + lineno: line, + colno: col + } + }); + + if (_onerror && typeof _onerror === 'function') { + _onerror.apply(window, arguments); + } + }; + } + } + function setInputUrl(tracker) { - tracker.inputUrl = LOGGLY_INPUT_PREFIX + var u = LOGGLY_INPUT_PREFIX + (tracker.logglyCollectorDomain || LOGGLY_COLLECTOR_DOMAIN) + '/inputs/' - + tracker.key - + LOGGLY_INPUT_SUFFIX; + + tracker.key; + + // Append tags + if (tracker.tags && tracker.tags.constructor === Array) u += '/tag/'+ tracker.tags.join(); + + u += LOGGLY_INPUT_SUFFIX; + + tracker.inputUrl = u; } - + LogglyTracker.prototype = { setSession: function(session_id) { if(session_id) { @@ -71,15 +78,15 @@ }, push: function(data) { var type = typeof data; - + if( !data || !(type === 'object' || type === 'string') ) { return; } var self = this; - - if(type === 'string') { + + if(type === 'string') { data = { 'text': data }; @@ -88,37 +95,40 @@ self.logglyCollectorDomain = data.logglyCollectorDomain; return; } - - if(data.sendConsoleErrors !== undefined) { - setSendConsoleError(self, data.sendConsoleErrors); - } - - if(data.logglyKey) { - setKey(self, data.logglyKey); + + if(data.sendConsoleErrors !== undefined) { + setSendConsoleError(self, data.sendConsoleErrors); + } + + // Initialize + if(data.logglyKey) { + setKey(self, data.logglyKey, data.tags); + self.browserInfo = (data.browserInfo); return; } - + if(data.session_id) { self.setSession(data.session_id); return; } } - + if(!self.key) { return; } - + + // Append browser info + if (self.browserInfo) self.setClientInfo(data); + self.track(data); - - }, track: function(data) { // inject session id data.sessionId = this.session_id; - + try { var im = new Image(), - q = 'PLAINTEXT=' + encodeURIComponent(JSON.stringify(data)); + q = 'PLAINTEXT=' + encodeURIComponent(JSON.stringify(data)); im.src = this.inputUrl + q; } catch (ex) { if (window && window.console && typeof window.console.log === 'function') { @@ -143,13 +153,159 @@ }, setCookie: function(value) { document.cookie = LOGGLY_SESSION_KEY + '=' + value; + }, + // Set browser provider, device and version + setClientInfo: function (data) { + + if (! this._client) { + this._client = {}; + + // Browser infos + if (navigator) { + + //browser : thanks Christian : http://stackoverflow.com/a/18706818 + var nVer = navigator.appVersion; + var nAgt = navigator.userAgent; + var browser = navigator.appName; + var version = '' + parseFloat(navigator.appVersion); + var unknown = '-'; + var nameOffset, verOffset, ix; + + // Opera + if ((verOffset = nAgt.indexOf('Opera')) != -1) { + browser = 'Opera'; + version = nAgt.substring(verOffset + 6); + if ((verOffset = nAgt.indexOf('Version')) != -1) { + version = nAgt.substring(verOffset + 8); + } + } + // MSIE + else if ((verOffset = nAgt.indexOf('MSIE')) != -1) { + browser = 'Microsoft Internet Explorer'; + version = nAgt.substring(verOffset + 5); + } + // Chrome + else if ((verOffset = nAgt.indexOf('Chrome')) != -1) { + browser = 'Chrome'; + version = nAgt.substring(verOffset + 7); + } + // Safari + else if ((verOffset = nAgt.indexOf('Safari')) != -1) { + browser = 'Safari'; + version = nAgt.substring(verOffset + 7); + if ((verOffset = nAgt.indexOf('Version')) != -1) { + version = nAgt.substring(verOffset + 8); + } + } + // Firefox + else if ((verOffset = nAgt.indexOf('Firefox')) != -1) { + browser = 'Firefox'; + version = nAgt.substring(verOffset + 8); + } + // MSIE 11+ + else if (nAgt.indexOf('Trident/') != -1) { + browser = 'Microsoft Internet Explorer'; + version = nAgt.substring(nAgt.indexOf('rv:') + 3); + } + // Other browsers + else if ((nameOffset = nAgt.lastIndexOf(' ') + 1) < (verOffset = nAgt.lastIndexOf('/'))) { + browser = nAgt.substring(nameOffset, verOffset); + version = nAgt.substring(verOffset + 1); + if (browser.toLowerCase() == browser.toUpperCase()) { + browser = navigator.appName; + } + } + // trim the version string + if ((ix = version.indexOf(';')) != -1) version = version.substring(0, ix); + if ((ix = version.indexOf(' ')) != -1) version = version.substring(0, ix); + if ((ix = version.indexOf(')')) != -1) version = version.substring(0, ix); + + // mobile version + var mobile = /Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(nVer); + + // system + var os = unknown; + var clientStrings = [ + {s:'Windows 3.11', r:/Win16/}, + {s:'Windows 95', r:/(Windows 95|Win95|Windows_95)/}, + {s:'Windows ME', r:/(Win 9x 4.90|Windows ME)/}, + {s:'Windows 98', r:/(Windows 98|Win98)/}, + {s:'Windows CE', r:/Windows CE/}, + {s:'Windows 2000', r:/(Windows NT 5.0|Windows 2000)/}, + {s:'Windows XP', r:/(Windows NT 5.1|Windows XP)/}, + {s:'Windows Server 2003', r:/Windows NT 5.2/}, + {s:'Windows Vista', r:/Windows NT 6.0/}, + {s:'Windows 7', r:/(Windows 7|Windows NT 6.1)/}, + {s:'Windows 8.1', r:/(Windows 8.1|Windows NT 6.3)/}, + {s:'Windows 8', r:/(Windows 8|Windows NT 6.2)/}, + {s:'Windows NT 4.0', r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/}, + {s:'Windows ME', r:/Windows ME/}, + {s:'Android', r:/Android/}, + {s:'Open BSD', r:/OpenBSD/}, + {s:'Sun OS', r:/SunOS/}, + {s:'Linux', r:/(Linux|X11)/}, + {s:'iOS', r:/(iPhone|iPad|iPod)/}, + {s:'Mac OS X', r:/Mac OS X/}, + {s:'Mac OS', r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/}, + {s:'QNX', r:/QNX/}, + {s:'UNIX', r:/UNIX/}, + {s:'BeOS', r:/BeOS/}, + {s:'OS/2', r:/OS\/2/}, + {s:'Search Bot', r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/} + ]; + for (var id in clientStrings) { + var cs = clientStrings[id]; + if (cs.r.test(nAgt)) { + os = cs.s; + break; + } + } + + var osVersion = unknown; + + if (/Windows/.test(os)) { + osVersion = /Windows (.*)/.exec(os)[1]; + os = 'Windows'; + } + + switch (os) { + case 'Mac OS X': + osVersion = /Mac OS X (10[\.\_\d]+)/.exec(nAgt)[1]; + break; + + case 'Android': + osVersion = /Android ([\.\_\d]+)/.exec(nAgt)[1]; + break; + + case 'iOS': + osVersion = /OS (\d+)_(\d+)_?(\d+)?/.exec(nVer); + osVersion = osVersion[1] + '.' + osVersion[2] + '.' + (osVersion[3] | 0); + break; + } + + + this._client.browser = browser; + this._client.browserVersion = version; + this._client.os = os; + this._client.osVersion = osVersion; + this._client.mobile = mobile; + this._client.cookieEnabled = (navigator.cookieEnabled); + } + + // Screen size + if (screen) { + this._client.screenSize = ''+screen.width + 'x' + screen.height; + } + } + + data.browser = this._client; } }; - + var existing = window._LTracker; - + var tracker = new LogglyTracker(); - + if(existing && existing.length ) { var i = 0, eLength = existing.length; @@ -157,9 +313,9 @@ tracker.push(existing[i]); } } - + window._LTracker = tracker; // default global tracker - + window.LogglyTracker = LogglyTracker; // if others want to instantiate more than one tracker - + })(window, document); From a541776b587347bbd45fc1bad048cecf42bea3be Mon Sep 17 00:00:00 2001 From: Nicolas COSME Date: Mon, 1 Jun 2015 16:33:59 +0200 Subject: [PATCH 2/3] Documentation and minify --- README.md | 2 ++ src/loggly.tracker.js | 4 ++-- src/loggly.tracker.min.js | 2 +- src/loggly.tracker.min.map | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index f0ef31e..cc308a6 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,8 @@ Place the following on your page, and replace the logglyKey value with the key p _LTracker.push({ 'logglyKey': '8c518f97-e3e0-4bfb-a8ed-582d084a5289', 'sendConsoleErrors' : true, + 'tags': ['foo', 'bar'], + 'clientInfo': true, // false by default }); ``` diff --git a/src/loggly.tracker.js b/src/loggly.tracker.js index 7fed510..8c79bfb 100644 --- a/src/loggly.tracker.js +++ b/src/loggly.tracker.js @@ -103,7 +103,7 @@ // Initialize if(data.logglyKey) { setKey(self, data.logglyKey, data.tags); - self.browserInfo = (data.browserInfo); + self.clientInfo = (data.clientInfo); return; } @@ -118,7 +118,7 @@ } // Append browser info - if (self.browserInfo) self.setClientInfo(data); + if (self.clientInfo) self.setClientInfo(data); self.track(data); }, diff --git a/src/loggly.tracker.min.js b/src/loggly.tracker.min.js index 7798349..baa84cc 100644 --- a/src/loggly.tracker.min.js +++ b/src/loggly.tracker.min.js @@ -1,2 +1,2 @@ -!function(a,b){function c(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"==a?b:3&b|8;return c.toString(16)})}function d(){this.key=!1,this.sendConsoleErrors=!1}function e(a,b){a.key=b,a.setSession(),g(a)}function f(b,c){if(b.sendConsoleErrors=c,b.sendConsoleErrors===!0){var d=a.onerror;a.onerror=function(c,e,f,g){b.push({category:"BrowserJsException",exception:{message:c,url:e,lineno:f,colno:g}}),d&&"function"==typeof d&&d.apply(a,arguments)}}}function g(a){a.inputUrl=h+(a.logglyCollectorDomain||i)+"/inputs/"+a.key+j}var h="http"+("https:"===b.location.protocol?"s":"")+"://",i="logs-01.loggly.com",j=".gif?",k="logglytrackingsession",l=k.length+1;d.prototype={setSession:function(a){a?(this.session_id=a,this.setCookie(this.session_id)):this.session_id||(this.session_id=this.readCookie(),this.session_id||(this.session_id=c(),this.setCookie(this.session_id)))},push:function(a){var b=typeof a;if(a&&("object"===b||"string"===b)){var c=this;if("string"===b)a={text:a};else{if(a.logglyCollectorDomain)return void(c.logglyCollectorDomain=a.logglyCollectorDomain);if(void 0!==a.sendConsoleErrors&&f(c,a.sendConsoleErrors),a.logglyKey)return void e(c,a.logglyKey);if(a.session_id)return void c.setSession(a.session_id)}c.key&&c.track(a)}},track:function(b){b.sessionId=this.session_id;try{var c=new Image,d="PLAINTEXT="+encodeURIComponent(JSON.stringify(b));c.src=this.inputUrl+d}catch(e){a&&a.console&&"function"==typeof a.console.log&&(console.log("Failed to log to loggly because of this exception:\n"+e),console.log("Failed log data:",b))}},readCookie:function(){var a=b.cookie,c=a.indexOf(k);if(0>c)return!1;var d=a.indexOf(";",c+1);return d=0>d?a.length:d,a.slice(c+l,d)},setCookie:function(a){b.cookie=k+"="+a}};var m=a._LTracker,n=new d;if(m&&m.length){var o=0,p=m.length;for(o=0;p>o;o++)n.push(m[o])}a._LTracker=n,a.LogglyTracker=d}(window,document); +!function(a,b){function c(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0,c="x"==a?b:3&b|8;return c.toString(16)})}function d(){this.key=!1,this.sendConsoleErrors=!1}function e(a,b,c){a.key=b,a.tags=c,a.setSession(),g(a)}function f(b,c){if(b.sendConsoleErrors=c,b.sendConsoleErrors===!0){var d=a.onerror;a.onerror=function(c,e,f,g){b.push({category:"BrowserJsException",exception:{message:c,url:e,lineno:f,colno:g}}),d&&"function"==typeof d&&d.apply(a,arguments)}}}function g(a){var b=h+(a.logglyCollectorDomain||i)+"/inputs/"+a.key;a.tags&&a.tags.constructor===Array&&(b+="/tag/"+a.tags.join()),b+=j,a.inputUrl=b}var h="http"+("https:"===b.location.protocol?"s":"")+"://",i="logs-01.loggly.com",j="/1*1.gif?",k="logglytrackingsession",l=k.length+1;d.prototype={setSession:function(a){a?(this.session_id=a,this.setCookie(this.session_id)):this.session_id||(this.session_id=this.readCookie(),this.session_id||(this.session_id=c(),this.setCookie(this.session_id)))},push:function(a){var b=typeof a;if(a&&("object"===b||"string"===b)){var c=this;if("string"===b)a={text:a};else{if(a.logglyCollectorDomain)return void(c.logglyCollectorDomain=a.logglyCollectorDomain);if(void 0!==a.sendConsoleErrors&&f(c,a.sendConsoleErrors),a.logglyKey)return e(c,a.logglyKey,a.tags),void(c.clientInfo=a.clientInfo);if(a.session_id)return void c.setSession(a.session_id)}c.key&&(c.clientInfo&&c.setClientInfo(a),c.track(a))}},track:function(b){b.sessionId=this.session_id;try{var c=new Image,d="PLAINTEXT="+encodeURIComponent(JSON.stringify(b));c.src=this.inputUrl+d}catch(e){a&&a.console&&"function"==typeof a.console.log&&(console.log("Failed to log to loggly because of this exception:\n"+e),console.log("Failed log data:",b))}},readCookie:function(){var a=b.cookie,c=a.indexOf(k);if(0>c)return!1;var d=a.indexOf(";",c+1);return d=0>d?a.length:d,a.slice(c+l,d)},setCookie:function(a){b.cookie=k+"="+a},setClientInfo:function(a){if(!this._client){if(this._client={},navigator){var b,c,d,e=navigator.appVersion,f=navigator.userAgent,g=navigator.appName,h=""+parseFloat(navigator.appVersion),i="-";-1!=(c=f.indexOf("Opera"))?(g="Opera",h=f.substring(c+6),-1!=(c=f.indexOf("Version"))&&(h=f.substring(c+8))):-1!=(c=f.indexOf("MSIE"))?(g="Microsoft Internet Explorer",h=f.substring(c+5)):-1!=(c=f.indexOf("Chrome"))?(g="Chrome",h=f.substring(c+7)):-1!=(c=f.indexOf("Safari"))?(g="Safari",h=f.substring(c+7),-1!=(c=f.indexOf("Version"))&&(h=f.substring(c+8))):-1!=(c=f.indexOf("Firefox"))?(g="Firefox",h=f.substring(c+8)):-1!=f.indexOf("Trident/")?(g="Microsoft Internet Explorer",h=f.substring(f.indexOf("rv:")+3)):(b=f.lastIndexOf(" ")+1)<(c=f.lastIndexOf("/"))&&(g=f.substring(b,c),h=f.substring(c+1),g.toLowerCase()==g.toUpperCase()&&(g=navigator.appName)),-1!=(d=h.indexOf(";"))&&(h=h.substring(0,d)),-1!=(d=h.indexOf(" "))&&(h=h.substring(0,d)),-1!=(d=h.indexOf(")"))&&(h=h.substring(0,d));var j=/Mobile|mini|Fennec|Android|iP(ad|od|hone)/.test(e),k=i,l=[{s:"Windows 3.11",r:/Win16/},{s:"Windows 95",r:/(Windows 95|Win95|Windows_95)/},{s:"Windows ME",r:/(Win 9x 4.90|Windows ME)/},{s:"Windows 98",r:/(Windows 98|Win98)/},{s:"Windows CE",r:/Windows CE/},{s:"Windows 2000",r:/(Windows NT 5.0|Windows 2000)/},{s:"Windows XP",r:/(Windows NT 5.1|Windows XP)/},{s:"Windows Server 2003",r:/Windows NT 5.2/},{s:"Windows Vista",r:/Windows NT 6.0/},{s:"Windows 7",r:/(Windows 7|Windows NT 6.1)/},{s:"Windows 8.1",r:/(Windows 8.1|Windows NT 6.3)/},{s:"Windows 8",r:/(Windows 8|Windows NT 6.2)/},{s:"Windows NT 4.0",r:/(Windows NT 4.0|WinNT4.0|WinNT|Windows NT)/},{s:"Windows ME",r:/Windows ME/},{s:"Android",r:/Android/},{s:"Open BSD",r:/OpenBSD/},{s:"Sun OS",r:/SunOS/},{s:"Linux",r:/(Linux|X11)/},{s:"iOS",r:/(iPhone|iPad|iPod)/},{s:"Mac OS X",r:/Mac OS X/},{s:"Mac OS",r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/},{s:"QNX",r:/QNX/},{s:"UNIX",r:/UNIX/},{s:"BeOS",r:/BeOS/},{s:"OS/2",r:/OS\/2/},{s:"Search Bot",r:/(nuhk|Googlebot|Yammybot|Openbot|Slurp|MSNBot|Ask Jeeves\/Teoma|ia_archiver)/}];for(var m in l){var n=l[m];if(n.r.test(f)){k=n.s;break}}var o=i;switch(/Windows/.test(k)&&(o=/Windows (.*)/.exec(k)[1],k="Windows"),k){case"Mac OS X":o=/Mac OS X (10[\.\_\d]+)/.exec(f)[1];break;case"Android":o=/Android ([\.\_\d]+)/.exec(f)[1];break;case"iOS":o=/OS (\d+)_(\d+)_?(\d+)?/.exec(e),o=o[1]+"."+o[2]+"."+(0|o[3])}this._client.browser=g,this._client.browserVersion=h,this._client.os=k,this._client.osVersion=o,this._client.mobile=j,this._client.cookieEnabled=navigator.cookieEnabled}screen&&(this._client.screenSize=""+screen.width+"x"+screen.height)}a.browser=this._client}};var m=a._LTracker,n=new d;if(m&&m.length){var o=0,p=m.length;for(o=0;p>o;o++)n.push(m[o])}a._LTracker=n,a.LogglyTracker=d}(window,document); //# sourceMappingURL=loggly.tracker.min.map \ No newline at end of file diff --git a/src/loggly.tracker.min.map b/src/loggly.tracker.min.map index 2d5263f..b4c32f4 100644 --- a/src/loggly.tracker.min.map +++ b/src/loggly.tracker.min.map @@ -1 +1 @@ -{"version":3,"file":"loggly.tracker.min.js","sources":["loggly.tracker.js"],"names":["window","document","uuid","replace","c","r","Math","random","v","toString","LogglyTracker","this","key","sendConsoleErrors","setKey","tracker","setSession","setInputUrl","setSendConsoleError","_onerror","onerror","msg","url","line","col","push","category","exception","message","lineno","colno","apply","arguments","inputUrl","LOGGLY_INPUT_PREFIX","logglyCollectorDomain","LOGGLY_COLLECTOR_DOMAIN","LOGGLY_INPUT_SUFFIX","location","protocol","LOGGLY_SESSION_KEY","LOGGLY_SESSION_KEY_LENGTH","length","prototype","session_id","setCookie","readCookie","data","type","self","text","undefined","logglyKey","track","sessionId","im","Image","q","encodeURIComponent","JSON","stringify","src","ex","console","log","cookie","i","indexOf","end","slice","value","existing","_LTracker","eLength"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"loggly.tracker.min.js","sources":["loggly.tracker.js"],"names":["window","document","uuid","replace","c","r","Math","random","v","toString","LogglyTracker","this","key","sendConsoleErrors","setKey","tracker","tags","setSession","setInputUrl","setSendConsoleError","_onerror","onerror","msg","url","line","col","push","category","exception","message","lineno","colno","apply","arguments","u","LOGGLY_INPUT_PREFIX","logglyCollectorDomain","LOGGLY_COLLECTOR_DOMAIN","constructor","Array","join","LOGGLY_INPUT_SUFFIX","inputUrl","location","protocol","LOGGLY_SESSION_KEY","LOGGLY_SESSION_KEY_LENGTH","length","prototype","session_id","setCookie","readCookie","data","type","self","text","undefined","logglyKey","clientInfo","setClientInfo","track","sessionId","im","Image","q","encodeURIComponent","JSON","stringify","src","ex","console","log","cookie","i","indexOf","end","slice","value","_client","navigator","nameOffset","verOffset","ix","nVer","appVersion","nAgt","userAgent","browser","appName","version","parseFloat","unknown","substring","lastIndexOf","toLowerCase","toUpperCase","mobile","test","os","clientStrings","s","id","cs","osVersion","exec","browserVersion","cookieEnabled","screen","screenSize","width","height","existing","_LTracker","eLength"],"mappings":"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"} \ No newline at end of file From ff4a903cd6d8c0bfc8fa8c5752d58afd11f91242 Mon Sep 17 00:00:00 2001 From: nicomlas Date: Mon, 1 Jun 2015 17:18:37 +0200 Subject: [PATCH 3/3] Rename JSON field browser -> clientInfo --- src/loggly.tracker.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/loggly.tracker.js b/src/loggly.tracker.js index 8c79bfb..2cec9d8 100644 --- a/src/loggly.tracker.js +++ b/src/loggly.tracker.js @@ -298,7 +298,7 @@ } } - data.browser = this._client; + data.clientInfo = this._client; } };