如何禁用 firefox 控制台对重复输出进行分组?

How do I disable firefox console from grouping duplicate output?

有人知道如何避免 firefox 控制台对日志条目进行分组吗?

我已经看到如何使用 firebug https://superuser.com/questions/645691/does-firebug-not-always-duplicate-repeated-identical-console-logs/646009#646009 来完成它,但是我在 about:config 部分没有找到任何组日志条目。

我不想使用 Firebug,因为它不再受支持或维护,而且我真的很喜欢 firefox 控制台。

我试着解释得更好,我希望控制台打印所有日志,而不是带有一个日志字符串出现次数的红色徽章:

在上图中,我希望第一行有两行,第二行有两行,第三行有三行。

这可能吗?

提前致谢

更新 [2022-01-24]

似乎下面的选项没有按预期工作。随意 report it as a bug

更新 [2020-01-28]

Firefox 团队添加了对相似消息进行分组的选项,默认情况下启用。

您可以通过控制台设置访问此选项

  • 打开 Firefox 的开发工具
  • Select Console 选项卡
  • 单击齿轮按钮(位于工具栏右侧)
  • 根据需要更改选项

原答案

正如我在评论部分提到的,目前无法实现。也许您应该尝试通过 Bugzilla@Mozilla

请求此功能

你也可以查看Gaps between Firebug and the Firefox DevTools

虽然您仍然不能这样做(截至 2018 年 8 月),但我有一个解决方法,您可能喜欢也可能不喜欢。

您必须在控制台中的一行中显示一些内容 different/unique 以避免出现小数字并获得单独的一行。

我正在调试一些 JavaScript。

我得到 "Return false",控制台中的小蓝色 3 指示连续三个错误结果。 (我没有显示 "true" 结果。)

我想查看所有三个 "false" 消息,以防我要进行更多测试。

我发现,如果我插入另一个每次显示不同内容的 console.log 语句(在我的例子中,我只是显示输入数据,因为它相对较短),那么我会得到单独的行每个 "Return false" 而不是一个和小 3.

因此,在下面的代码中,如果您取消注释:"console.log(data);",您将获得数据,后跟“Return false”,而不仅仅是 "false"小3.

另一种选择,如果您不想在控制台中显示额外的行,则将两个语句合并为一个:"console.log("Return false -- " + data);"

function(data){

   ...more code here...

    // console.log(data);
    console.log("Return false ");
    return false;
}

threeWords("Hello World hello"); //== True
threeWords("He is 123 man"); //== False
threeWords("1 2 3 4"); //== False
threeWords("bla bla bla bla"); //== True
threeWords("Hi"); // == False

要为任何浏览器解决此问题,您可以使用此 解决方法 :重写 window 中的 console.log 命令,使每个后续行与上一行。

这包括在前置不可见的零宽度空白、前置时间戳和前置行号之间切换。请参阅下面的几个示例:

(function()
{
    var prefixconsole = function(key, fnc)
    {
        var c = window.console[key], i = 0;
        window.console[key] = function(str){c.call(window.console, fnc(i++) + str);};
    };

    // zero padding for linenumber
    var pad = function(s, n, c){s=s+'';while(s.length<n){s=c+s;}return s;};

    // just choose any of these, or make your own:
    var whitespace = function(i){return i%2 ? '\u200B' : ''};
    var linenumber = function(i){return pad(i, 6, '0') + ' ';};
    var timestamp = function(){return new Date().toISOString() + ' ';};

    // apply custom console (maybe also add warn, error, info)
    prefixconsole('log', whitespace); // or linenumber, timestamp, etc
})();

复制带有零宽度空格的日志消息时要小心。

作为解决方法,您可以将 Math.random() 附加到日志字符串。这应该使您的所有输出消息都是唯一的,这将导致它们全部被打印出来。例如:

console.log(你的变量+" "+Math.random());

Web 控制台工具栏右侧现在有一个设置菜单 (),其中包含 ✓ 分组相似消息: