javascript 有没有办法在谷歌浏览器的控制台过滤输出?

sg2wtvxw  于 2022-12-28  发布在  Java
关注(0)|答案(6)|浏览(308)

我从我正在玩的第三方页面的输出中得到了很多噪音,我想知道是否有办法过滤控制台上的输出。比如Logcat的标志。有办法做到这一点吗?
编辑
我找到了一个方法来禁用导致最大噪音的输出。我用右键单击控制台,然后禁用XMLHttpRequest Logging选项。这不是我想要的,但这是我需要的。

5cg8jx4n

5cg8jx4n1#

您可以使用正则表达式。
例如,为了排除单词browser-sync,我使用^((?!browser-sync).)*$

另请参见here
chrome 合金44.0.2403.125

jbose2ul

jbose2ul2#

比上面的回答评论更进一步。
进入控制台模式(Windows上按Ctrl Shift J键),输入以下内容:

console.nativeLog = console.log;

然后输入这个

console.log = function( a, b ){ if(a=="extension") console.nativeLog( b ) }

第一行将本机实现保存在一个安全的位置,第二行几乎完成了您的请求。
对我有用。

nwwlzxa7

nwwlzxa73#

我刚刚在博客上发表了我的解决方案,我修改了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文件:

wfypjpf4

wfypjpf44#

如果你可以控制页面脚本和扩展脚本,那么你可以通过你自己的函数来运行这两个脚本,在这个函数中你可以控制输出。

var pageErrors = true;
var extErrors = true;

function outputToConsole(message, sender) {
   if (sender == 'page' && pageErrors) { console.write(message); }
   if (sender == 'ext' && extErrors) { console.write(message); }
}

在您想要记录的任何位置,将console.log替换为outputToConsole()

fkvaft9z

fkvaft9z5#

这是我刚刚编写的解决相同问题的方法,与前面的答案相比,它的好处是正确处理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) {};
    };
})();
xdnvmnnf

xdnvmnnf6#

如果正则表达式不是你的菜,你可以做另外两件事:
1.在Filter(过滤器)输入框中,您可以添加一个负匹配字符串,以防止显示以这些字符开头的消息
示例:

-WARNING -Errorcode -bonk

将禁止显示如下消息:

WARNING line 234 something else on this line
This message will still display
Errorcode 234: Some error that will be hidden
bonk

上面显示的唯一消息是:

This message will still display

1.您可以做的另一件简单的事情是右键单击控制台日志中的任意一行,然后从弹出的上下文菜单中选择第一个选项:"隐藏来自___________的消息"(某个脚本名)。这将隐藏该脚本产生的所有错误消息。
要再次"取消隐藏"这些消息,请注意,不需要的脚本已添加到过滤器输入框中-只需从那里删除它,消息将返回。

相关问题