我从第三方页面的输出中得到了很多噪音,我正在玩这个,我想知道是否有办法过滤控制台上的输出。像Logcat的旗帜。有没有办法做到这一点?
修改
我找到了一种方法来禁用导致最大噪音的输出。我单击右键单击控制台,然后禁用XMLHttpRequest Logging
选项。这不是我想要的,但这就是我所需要的。
答案 0 :(得分:22)
答案 1 :(得分:19)
比上述回答评论更进一步..
进入控制台模式(Windows上的Control Shift J),输入:
console.nativeLog = console.log;
然后输入此
console.log = function( a, b ){ if(a=="extension") console.nativeLog( b ) }
第一行将本机实现保存在安全位置。 第二行几乎可以满足您的要求。
适合我。
答案 2 :(得分:3)
我刚刚在博客上写了关于我的解决方案。我修改了Ben Alman的“ba-debug”库并制作了一个模块化的“Trace”对象,旨在用于代码的不同模块或区域(由您定义)。
基本用法:
var _trace = new Trace('ModuleName');
然后,当您想要追踪任何级别的诊断时,您可以:
_trace.error('error level message');
_trace.warn('warning level message');
_trace.info('information level message');
_trace.log('log level message');
_trace.debug('debug level message');
然后,在您的页面或控制台中,您可以执行以下操作:
Trace.traceLevel('ModuleName', Trace.Levels.warn);
以下是我的博客post以获取更多详细信息和JavaScript文件:
答案 3 :(得分:2)
如果您可以控制页面和扩展脚本,那么您可以通过自己的功能运行。在该功能中,您现在可以控制输出。
var pageErrors = true;
var extErrors = true;
function outputToConsole(message, sender) {
if (sender == 'page' && pageErrors) { console.write(message); }
if (sender == 'ext' && extErrors) { console.write(message); }
}
您要记录的任何地方都将output.log替换为outputToConsole()
答案 4 :(得分:0)
这就是我刚才写的解决同样问题的方法。与之前的答案相比,它具有正确处理console.log
的多个参数以及防止缺少window.console.log来抛出未捕获的异常的好处。
(function(){
window.console = window.console||{log:0};
var nativeLog = window.console.log;
window.console.log = function() {
try {
// these conditions find all console.log output
// from bitcoinjs-0.1.3 but not much else
// (who else ends an extremely short first parameter with a space?)
if ((arguments.length == 2)
&& (arguments[0].length <= 5)
&& (arguments[0].slice(-2) === ': ')
) {
return;
};
nativeLog.apply(window.console, arguments);
} catch(e) {};
};
})();