Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

injecting log to any javascript function #51

Open
wants to merge 10 commits into
base: master
from
Next

injecting log to any javascript function

  • Loading branch information
dhewzulla committed Nov 7, 2017
commit 6be4ea9bf52dba8e7d5ec39019aa31e41abe0748
@@ -43,7 +43,7 @@
var _onerror = window.onerror;
//send console error messages to Loggly
window.onerror = function (msg, url, line, col, err){
tracker.push({
tracker.push({
category: 'BrowserJsException',
exception: {
message: msg,
@@ -181,7 +181,98 @@
},
setCookie: function (value) {
document.cookie = LOGGLY_SESSION_KEY + '=' + value;
}
},
injectedList:{},
getTargetObjectFromString:function(targetObjectName){
try{
return eval(targetObjectName);
}
catch(error){
return null;
}
},
injectLog:function(request){
if(!request.enable){
return;
}
if(request.enable<(Math.random()*100)){
return;
}
if(!request.target){
return;
}

if(!request.name){
return;
}
if(this.injectedList[request.target]){
return;
}
var targetparts=request.target.split(".");
if(targetparts.length<=1){
return;
}
var targetObject=this.getTargetObjectFromString(targetparts[0]);
for(var i=1;(i+1)<targetparts.length;i++){
if(!targetObject){
return null;
}
targetObject=targetObject[targetparts[i]];
}
if(!targetObject){
return;
}
var methodName=targetparts[targetparts.length-1];
var targetFunction=targetObject[methodName];
if(!targetFunction){
return;
}
this.injectedList[request.target]=targetFunction;

var that=this;
targetObject[methodName]=function(){
var ret=targetFunction.apply(targetObject, arguments);
var data={};
if((!arguments) || arguments.length==0){
if(ret){
data[request.name]=ret;
}
else{
data[request.name]="empty";
}
}
else if(arguments.length==1){
if(!ret){
data[request.name]=arguments[0];
}
else{
data[request.name]={input:arguments[0],
output:ret};
}
}
else {
if(!ret){
data[request.name]={};
for(var i=0;i<arguments.length;i++){
data[request.name]['param'+(i+1)]=arguments[i];
}
}
else{
data[request.name]={
input:{},
output:ret
};
for(var i=0;i<arguments.length;i++){
data[request.name].input['param'+(i+1)]=arguments[i];
}
}

}
that.track(data);
return ret;
};
},

};

var existing = window._LTracker;
ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.