监视JavaScript输出,例如console.log()
Monitor JavaScript output, such as console.log()
我一直在谷歌和各种JavaScript网站上搜寻,但我还没有找到答案。有没有什么方法可以使用JavaScript/JQuery来监视事件,如console.log()?
例如,即使一个单独的、繁琐的脚本调用console.log('foo');
,我也想触发一个。当使用任何带有JavaScript控制台的web检查器时,当脚本记录它时,很容易看到foo
弹出,但有没有方法可以用不同的脚本挂接该事件?
从javascript中借用的代码我可以扩展控制台对象(用于重新路由日志记录)吗?:
(function() {
var exLog = console.log;
console.log = function(msg) {
exLog.apply(console, arguments);
alert(msg);
}
})()
这应该允许您在console.log()执行后执行任何操作,只要此代码在console.log()执行之前运行即可。
虽然不能扩展控制台,但可以包装它的每个方法。下面的代码截取每个日志记录方法,并将每个调用记录在一个名为log的变量中。
var actualConsole = window.console;
var c = window.console = {};
var log={};
for (var m in actualConsole){
if (typeof console[m] ==='object'){
c[m]=console[m];
}else if (typeof actualConsole[m] ==='function'){
c[m]=function () {
var args = Array.prototype.slice.call(arguments);
log[this]=log[this]||[];
log[this].push(args);
actualConsole[this].apply(actualConsole,args);
}.bind(m);
}// else - nothing else expected
}
console.log('log',1);
console.log('log',2);
console.error('error',1);
console.warn('warn',1);
actualConsole.log('log:',log);
日志看起来像:
{"log":[["log",1],["log",2]],"error":[["error",1]],"warn":[["warn",1]]}
相关文章:
- Array.length似乎不起作用;console.log则显示其他情况
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- console.log以外的Javascript输出函数
- 如果在代码末尾进行求值,jQuery-console.log将提供空数组
- 为什么生成器中的console.log会按这样的顺序出现
- async问题,JS Promise无法返回结果,但可以使用console.log
- 谷歌地图:函数返回未定义的值在console.log中运行良好
- 我应该返回一个类似console.log()的方法调用吗
- console.log无法运行Mac OS X
- 如何使console.log可配置
- 如何使用console.log语句在Mocha中测试函数
- 为什么我可以't直接将console.log()设置为回调函数
- Node.js/Express未输出console.log,highcharts.js给出未定义的错误
- console.log在角度控制器内不工作
- Mocking console.log()/MOCHA测试框架中的任何其他函数
- 如何使用console.log在因果报应测试中检查函数
- Console.log - getElementsByClassName
- nodejs console.log of object
- 监视JavaScript输出,例如console.log()
- console.log/console.dir显示对象的最后状态,而不是当前状态