From a388a5e48cd418f2b4453909ccc8a16c530a0f2f Mon Sep 17 00:00:00 2001 From: Brennon Bortz Date: Wed, 14 Oct 2015 19:31:42 +0200 Subject: [PATCH 1/2] Allow service to update token --- angular-loggly-logger.js | 9 +++++++++ angular-loggly-logger.min.js | 2 +- angular-loggly-logger.min.map | 2 +- test/unit/logglySenderSpec.js | 6 ++++++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/angular-loggly-logger.js b/angular-loggly-logger.js index d7e1098..e822cff 100644 --- a/angular-loggly-logger.js +++ b/angular-loggly-logger.js @@ -174,6 +174,14 @@ var attach = function() { }; + var inputToken = function(s) { + if (angular.isDefined(s)) { + token = s; + } + + return token; + }; + return { lastLog: function(){ return lastLog }, sendConsoleErrors: function(){ return sendConsoleErrors }, @@ -182,6 +190,7 @@ attach: attach, sendMessage: sendMessage, logToConsole: logToConsole, + inputToken: inputToken, /** * Get or set the fields to be sent with all logged events. diff --git a/angular-loggly-logger.min.js b/angular-loggly-logger.min.js index efd1e77..c4e466d 100644 --- a/angular-loggly-logger.min.js +++ b/angular-loggly-logger.min.js @@ -1,2 +1,2 @@ -!function(a){"use strict";a.module("logglyLogger.logger",[]).provider("LogglyLogger",function(){var b=this,c=["DEBUG","INFO","WARN","ERROR"],d=!0,e={},f=!1,g=!1,h=null,i=!1,j=!0,k=0,l=null,m="://logs-01.loggly.com/inputs/",n=function(b){var c=encodeURIComponent(a.toJson(b));return(d?"https":"http")+m+l+(h?"/tag/"+h+"/":"")+".gif?PLAINTEXT="+c};this.setExtra=function(a){return e=a,b},this.fields=function(c){return a.isDefined(c)?(e=c,b):e},this.inputToken=function(c){return a.isDefined(c)?(l=c,b):l},this.useHttps=function(c){return a.isDefined(c)?(d=!!c,b):d},this.includeUrl=function(c){return a.isDefined(c)?(f=!!c,b):f},this.includeTimestamp=function(c){return a.isDefined(c)?(g=!!c,b):g},this.inputTag=function(c){return a.isDefined(c)?(h=c,b):h},this.sendConsoleErrors=function(c){return a.isDefined(c)?(i=!!c,b):i},this.level=function(d){if(a.isDefined(d)){var e=c.indexOf(d.toUpperCase());if(0>e)throw"Invalid logging level specified: "+d;return k=e,b}return c[k]},this.isLevelEnabled=function(a){return c.indexOf(a.toUpperCase())>=k},this.logToConsole=function(c){return a.isDefined(c)?(j=!!c,b):j},this.$get=["$injector",function(c){var d=null,h=function(b){if(l){var h=c.get("$location");d=new Date;var i=a.extend({},e,b);f&&(i.url=h.absUrl()),g&&(i.timestamp=d.toISOString()),(new Image).src=n(i)}},m=function(){};return{lastLog:function(){return d},sendConsoleErrors:function(){return i},level:function(){return k},isLevelEnabled:b.isLevelEnabled,attach:m,sendMessage:h,logToConsole:j,fields:function(c){return a.isDefined(c)&&b.fields(c),b.fields()}}}]}),a.module("logglyLogger",["logglyLogger.logger"]).config(["$provide",function(b){b.decorator("$log",["$delegate","$injector",function(b,c){var d=c.get("LogglyLogger");if(d.sendConsoleErrors()===!0){var e=window.onerror;window.onerror=function(a,b,c,f){d.sendMessage({level:"ERROR",message:a,url:b,line:c,col:f}),e&&"function"==typeof e&&e.apply(window,arguments)}}var f=function(b,c,e){var f=function(){var f=Array.prototype.slice.call(arguments);if(d.logToConsole&&b.apply(null,f),d.isLevelEnabled(c)){var g=(1==f.length?f[0]:f)||{},h={level:c};if(a.isDefined(g.stack)||a.isDefined(g[0])&&a.isDefined(g[0].stack)){if(d.sendConsoleErrors()!==!0)return;h.message=g.message||g[0].message,h.stack=g.stack||g[0].stack}else a.isObject(g)?h=a.extend({},g,h):h.message=g;e&&(h.logger=g),d.sendMessage(h)}};return f.logs=[],f},g=function(a){return{log:a.log,info:a.info,warn:a.warn,error:a.error}}(b),h=function(a){return{log:f(g.log,"INFO",a),debug:f(g.debug,"DEBUG",a),info:f(g.info,"INFO",a),warn:f(g.warn,"WARN",a),error:f(g.error,"ERROR",a)}};return b.log=f(b.log,"INFO"),b.debug=f(b.debug,"DEBUG"),b.info=f(b.info,"INFO"),b.warn=f(b.warn,"WARN"),b.error=f(b.error,"ERROR"),b.getLogger=h,b}])}])}(window.angular); +!function(a){"use strict";a.module("logglyLogger.logger",[]).provider("LogglyLogger",function(){var b=this,c=["DEBUG","INFO","WARN","ERROR"],d=!0,e={},f=!1,g=!1,h=null,i=!1,j=!0,k=0,l=null,m="://logs-01.loggly.com/inputs/",n=function(b){var c=encodeURIComponent(a.toJson(b));return(d?"https":"http")+m+l+(h?"/tag/"+h+"/":"")+".gif?PLAINTEXT="+c};this.setExtra=function(a){return e=a,b},this.fields=function(c){return a.isDefined(c)?(e=c,b):e},this.inputToken=function(c){return a.isDefined(c)?(l=c,b):l},this.useHttps=function(c){return a.isDefined(c)?(d=!!c,b):d},this.includeUrl=function(c){return a.isDefined(c)?(f=!!c,b):f},this.includeTimestamp=function(c){return a.isDefined(c)?(g=!!c,b):g},this.inputTag=function(c){return a.isDefined(c)?(h=c,b):h},this.sendConsoleErrors=function(c){return a.isDefined(c)?(i=!!c,b):i},this.level=function(d){if(a.isDefined(d)){var e=c.indexOf(d.toUpperCase());if(0>e)throw"Invalid logging level specified: "+d;return k=e,b}return c[k]},this.isLevelEnabled=function(a){return c.indexOf(a.toUpperCase())>=k},this.logToConsole=function(c){return a.isDefined(c)?(j=!!c,b):j},this.$get=["$injector",function(c){var d=null,h=function(b){if(l){var h=c.get("$location");d=new Date;var i=a.extend({},e,b);f&&(i.url=h.absUrl()),g&&(i.timestamp=d.toISOString()),(new Image).src=n(i)}},m=function(){},o=function(b){return a.isDefined(b)&&(l=b),l};return{lastLog:function(){return d},sendConsoleErrors:function(){return i},level:function(){return k},isLevelEnabled:b.isLevelEnabled,attach:m,sendMessage:h,logToConsole:j,inputToken:o,fields:function(c){return a.isDefined(c)&&b.fields(c),b.fields()}}}]}),a.module("logglyLogger",["logglyLogger.logger"]).config(["$provide",function(b){b.decorator("$log",["$delegate","$injector",function(b,c){var d=c.get("LogglyLogger");if(d.sendConsoleErrors()===!0){var e=window.onerror;window.onerror=function(a,b,c,f){d.sendMessage({level:"ERROR",message:a,url:b,line:c,col:f}),e&&"function"==typeof e&&e.apply(window,arguments)}}var f=function(b,c,e){var f=function(){var f=Array.prototype.slice.call(arguments);if(d.logToConsole&&b.apply(null,f),d.isLevelEnabled(c)){var g=(1==f.length?f[0]:f)||{},h={level:c};if(a.isDefined(g.stack)||a.isDefined(g[0])&&a.isDefined(g[0].stack)){if(d.sendConsoleErrors()!==!0)return;h.message=g.message||g[0].message,h.stack=g.stack||g[0].stack}else a.isObject(g)?h=a.extend({},g,h):h.message=g;e&&(h.logger=g),d.sendMessage(h)}};return f.logs=[],f},g=function(a){return{log:a.log,info:a.info,warn:a.warn,error:a.error}}(b),h=function(a){return{log:f(g.log,"INFO",a),debug:f(g.debug,"DEBUG",a),info:f(g.info,"INFO",a),warn:f(g.warn,"WARN",a),error:f(g.error,"ERROR",a)}};return b.log=f(b.log,"INFO"),b.debug=f(b.debug,"DEBUG"),b.info=f(b.info,"INFO"),b.warn=f(b.warn,"WARN"),b.error=f(b.error,"ERROR"),b.getLogger=h,b}])}])}(window.angular); //# sourceMappingURL=angular-loggly-logger.min.map \ No newline at end of file diff --git a/angular-loggly-logger.min.map b/angular-loggly-logger.min.map index 3ba5937..72e76a0 100644 --- a/angular-loggly-logger.min.map +++ b/angular-loggly-logger.min.map @@ -1 +1 @@ -{"version":3,"file":"angular-loggly-logger.min.js","sources":["angular-loggly-logger.js"],"names":["angular","module","provider","self","this","logLevels","https","extra","includeCurrentUrl","includeTimestamp","tag","sendConsoleErrors","logToConsole","level","token","endpoint","buildUrl","data","msg","encodeURIComponent","toJson","setExtra","d","fields","isDefined","inputToken","s","useHttps","flag","includeUrl","inputTag","usrTag","name","newLevel","indexOf","toUpperCase","isLevelEnabled","$get","$injector","lastLog","sendMessage","$location","get","Date","sentData","extend","url","absUrl","timestamp","toISOString","Image","src","attach","config","$provide","decorator","$delegate","logger","_onerror","window","onerror","line","col","message","apply","arguments","wrapLogFunction","logFn","loggerName","wrappedFn","args","Array","prototype","slice","call","length","sending","stack","isObject","logs","_$log","log","info","warn","error","getLogger","debug"],"mappings":"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"} \ No newline at end of file +{"version":3,"sources":["angular-loggly-logger.js"],"names":["angular","module","provider","self","this","logLevels","https","extra","includeCurrentUrl","includeTimestamp","tag","sendConsoleErrors","logToConsole","level","token","endpoint","buildUrl","data","msg","encodeURIComponent","toJson","setExtra","d","fields","isDefined","inputToken","s","useHttps","flag","includeUrl","inputTag","usrTag","name","newLevel","indexOf","toUpperCase","isLevelEnabled","$get","$injector","lastLog","sendMessage","$location","get","Date","sentData","extend","url","absUrl","timestamp","toISOString","Image","src","attach","config","$provide","decorator","$delegate","logger","_onerror","window","onerror","line","col","message","apply","arguments","wrapLogFunction","logFn","loggerName","wrappedFn","args","Array","prototype","slice","call","length","sending","stack","isObject","logs","_$log","log","info","warn","error","getLogger","debug"],"mappings":"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","file":"angular-loggly-logger.min.js"} \ No newline at end of file diff --git a/test/unit/logglySenderSpec.js b/test/unit/logglySenderSpec.js index 66d98f8..8424a8e 100644 --- a/test/unit/logglySenderSpec.js +++ b/test/unit/logglySenderSpec.js @@ -266,6 +266,12 @@ describe('logglyLogger Module:', function() { }); + it( 'can update the Loggly token', function() { + logglyLoggerProvider.inputToken(''); + service.inputToken('foo'); + expect(logglyLoggerProvider.inputToken()).toEqual('foo'); + }); + }); From 117f1d7766a2adc30d586f448fedbbe9fa3bf785 Mon Sep 17 00:00:00 2001 From: Brennon Bortz Date: Tue, 20 Oct 2015 22:06:53 -0400 Subject: [PATCH 2/2] Revert minified script and map --- angular-loggly-logger.min.js | 2 +- angular-loggly-logger.min.map | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/angular-loggly-logger.min.js b/angular-loggly-logger.min.js index c4e466d..efd1e77 100644 --- a/angular-loggly-logger.min.js +++ b/angular-loggly-logger.min.js @@ -1,2 +1,2 @@ -!function(a){"use strict";a.module("logglyLogger.logger",[]).provider("LogglyLogger",function(){var b=this,c=["DEBUG","INFO","WARN","ERROR"],d=!0,e={},f=!1,g=!1,h=null,i=!1,j=!0,k=0,l=null,m="://logs-01.loggly.com/inputs/",n=function(b){var c=encodeURIComponent(a.toJson(b));return(d?"https":"http")+m+l+(h?"/tag/"+h+"/":"")+".gif?PLAINTEXT="+c};this.setExtra=function(a){return e=a,b},this.fields=function(c){return a.isDefined(c)?(e=c,b):e},this.inputToken=function(c){return a.isDefined(c)?(l=c,b):l},this.useHttps=function(c){return a.isDefined(c)?(d=!!c,b):d},this.includeUrl=function(c){return a.isDefined(c)?(f=!!c,b):f},this.includeTimestamp=function(c){return a.isDefined(c)?(g=!!c,b):g},this.inputTag=function(c){return a.isDefined(c)?(h=c,b):h},this.sendConsoleErrors=function(c){return a.isDefined(c)?(i=!!c,b):i},this.level=function(d){if(a.isDefined(d)){var e=c.indexOf(d.toUpperCase());if(0>e)throw"Invalid logging level specified: "+d;return k=e,b}return c[k]},this.isLevelEnabled=function(a){return c.indexOf(a.toUpperCase())>=k},this.logToConsole=function(c){return a.isDefined(c)?(j=!!c,b):j},this.$get=["$injector",function(c){var d=null,h=function(b){if(l){var h=c.get("$location");d=new Date;var i=a.extend({},e,b);f&&(i.url=h.absUrl()),g&&(i.timestamp=d.toISOString()),(new Image).src=n(i)}},m=function(){},o=function(b){return a.isDefined(b)&&(l=b),l};return{lastLog:function(){return d},sendConsoleErrors:function(){return i},level:function(){return k},isLevelEnabled:b.isLevelEnabled,attach:m,sendMessage:h,logToConsole:j,inputToken:o,fields:function(c){return a.isDefined(c)&&b.fields(c),b.fields()}}}]}),a.module("logglyLogger",["logglyLogger.logger"]).config(["$provide",function(b){b.decorator("$log",["$delegate","$injector",function(b,c){var d=c.get("LogglyLogger");if(d.sendConsoleErrors()===!0){var e=window.onerror;window.onerror=function(a,b,c,f){d.sendMessage({level:"ERROR",message:a,url:b,line:c,col:f}),e&&"function"==typeof e&&e.apply(window,arguments)}}var f=function(b,c,e){var f=function(){var f=Array.prototype.slice.call(arguments);if(d.logToConsole&&b.apply(null,f),d.isLevelEnabled(c)){var g=(1==f.length?f[0]:f)||{},h={level:c};if(a.isDefined(g.stack)||a.isDefined(g[0])&&a.isDefined(g[0].stack)){if(d.sendConsoleErrors()!==!0)return;h.message=g.message||g[0].message,h.stack=g.stack||g[0].stack}else a.isObject(g)?h=a.extend({},g,h):h.message=g;e&&(h.logger=g),d.sendMessage(h)}};return f.logs=[],f},g=function(a){return{log:a.log,info:a.info,warn:a.warn,error:a.error}}(b),h=function(a){return{log:f(g.log,"INFO",a),debug:f(g.debug,"DEBUG",a),info:f(g.info,"INFO",a),warn:f(g.warn,"WARN",a),error:f(g.error,"ERROR",a)}};return b.log=f(b.log,"INFO"),b.debug=f(b.debug,"DEBUG"),b.info=f(b.info,"INFO"),b.warn=f(b.warn,"WARN"),b.error=f(b.error,"ERROR"),b.getLogger=h,b}])}])}(window.angular); +!function(a){"use strict";a.module("logglyLogger.logger",[]).provider("LogglyLogger",function(){var b=this,c=["DEBUG","INFO","WARN","ERROR"],d=!0,e={},f=!1,g=!1,h=null,i=!1,j=!0,k=0,l=null,m="://logs-01.loggly.com/inputs/",n=function(b){var c=encodeURIComponent(a.toJson(b));return(d?"https":"http")+m+l+(h?"/tag/"+h+"/":"")+".gif?PLAINTEXT="+c};this.setExtra=function(a){return e=a,b},this.fields=function(c){return a.isDefined(c)?(e=c,b):e},this.inputToken=function(c){return a.isDefined(c)?(l=c,b):l},this.useHttps=function(c){return a.isDefined(c)?(d=!!c,b):d},this.includeUrl=function(c){return a.isDefined(c)?(f=!!c,b):f},this.includeTimestamp=function(c){return a.isDefined(c)?(g=!!c,b):g},this.inputTag=function(c){return a.isDefined(c)?(h=c,b):h},this.sendConsoleErrors=function(c){return a.isDefined(c)?(i=!!c,b):i},this.level=function(d){if(a.isDefined(d)){var e=c.indexOf(d.toUpperCase());if(0>e)throw"Invalid logging level specified: "+d;return k=e,b}return c[k]},this.isLevelEnabled=function(a){return c.indexOf(a.toUpperCase())>=k},this.logToConsole=function(c){return a.isDefined(c)?(j=!!c,b):j},this.$get=["$injector",function(c){var d=null,h=function(b){if(l){var h=c.get("$location");d=new Date;var i=a.extend({},e,b);f&&(i.url=h.absUrl()),g&&(i.timestamp=d.toISOString()),(new Image).src=n(i)}},m=function(){};return{lastLog:function(){return d},sendConsoleErrors:function(){return i},level:function(){return k},isLevelEnabled:b.isLevelEnabled,attach:m,sendMessage:h,logToConsole:j,fields:function(c){return a.isDefined(c)&&b.fields(c),b.fields()}}}]}),a.module("logglyLogger",["logglyLogger.logger"]).config(["$provide",function(b){b.decorator("$log",["$delegate","$injector",function(b,c){var d=c.get("LogglyLogger");if(d.sendConsoleErrors()===!0){var e=window.onerror;window.onerror=function(a,b,c,f){d.sendMessage({level:"ERROR",message:a,url:b,line:c,col:f}),e&&"function"==typeof e&&e.apply(window,arguments)}}var f=function(b,c,e){var f=function(){var f=Array.prototype.slice.call(arguments);if(d.logToConsole&&b.apply(null,f),d.isLevelEnabled(c)){var g=(1==f.length?f[0]:f)||{},h={level:c};if(a.isDefined(g.stack)||a.isDefined(g[0])&&a.isDefined(g[0].stack)){if(d.sendConsoleErrors()!==!0)return;h.message=g.message||g[0].message,h.stack=g.stack||g[0].stack}else a.isObject(g)?h=a.extend({},g,h):h.message=g;e&&(h.logger=g),d.sendMessage(h)}};return f.logs=[],f},g=function(a){return{log:a.log,info:a.info,warn:a.warn,error:a.error}}(b),h=function(a){return{log:f(g.log,"INFO",a),debug:f(g.debug,"DEBUG",a),info:f(g.info,"INFO",a),warn:f(g.warn,"WARN",a),error:f(g.error,"ERROR",a)}};return b.log=f(b.log,"INFO"),b.debug=f(b.debug,"DEBUG"),b.info=f(b.info,"INFO"),b.warn=f(b.warn,"WARN"),b.error=f(b.error,"ERROR"),b.getLogger=h,b}])}])}(window.angular); //# sourceMappingURL=angular-loggly-logger.min.map \ No newline at end of file diff --git a/angular-loggly-logger.min.map b/angular-loggly-logger.min.map index 72e76a0..3ba5937 100644 --- a/angular-loggly-logger.min.map +++ b/angular-loggly-logger.min.map @@ -1 +1 @@ -{"version":3,"sources":["angular-loggly-logger.js"],"names":["angular","module","provider","self","this","logLevels","https","extra","includeCurrentUrl","includeTimestamp","tag","sendConsoleErrors","logToConsole","level","token","endpoint","buildUrl","data","msg","encodeURIComponent","toJson","setExtra","d","fields","isDefined","inputToken","s","useHttps","flag","includeUrl","inputTag","usrTag","name","newLevel","indexOf","toUpperCase","isLevelEnabled","$get","$injector","lastLog","sendMessage","$location","get","Date","sentData","extend","url","absUrl","timestamp","toISOString","Image","src","attach","config","$provide","decorator","$delegate","logger","_onerror","window","onerror","line","col","message","apply","arguments","wrapLogFunction","logFn","loggerName","wrappedFn","args","Array","prototype","slice","call","length","sending","stack","isObject","logs","_$log","log","info","warn","error","getLogger","debug"],"mappings":"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","file":"angular-loggly-logger.min.js"} \ No newline at end of file +{"version":3,"file":"angular-loggly-logger.min.js","sources":["angular-loggly-logger.js"],"names":["angular","module","provider","self","this","logLevels","https","extra","includeCurrentUrl","includeTimestamp","tag","sendConsoleErrors","logToConsole","level","token","endpoint","buildUrl","data","msg","encodeURIComponent","toJson","setExtra","d","fields","isDefined","inputToken","s","useHttps","flag","includeUrl","inputTag","usrTag","name","newLevel","indexOf","toUpperCase","isLevelEnabled","$get","$injector","lastLog","sendMessage","$location","get","Date","sentData","extend","url","absUrl","timestamp","toISOString","Image","src","attach","config","$provide","decorator","$delegate","logger","_onerror","window","onerror","line","col","message","apply","arguments","wrapLogFunction","logFn","loggerName","wrappedFn","args","Array","prototype","slice","call","length","sending","stack","isObject","logs","_$log","log","info","warn","error","getLogger","debug"],"mappings":"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"} \ No newline at end of file