【问题标题】:How do I disable firefox console from grouping duplicate output?如何禁用 Firefox 控制台对重复输出进行分组?
【发布时间】:2017-04-20 21:23:03
【问题描述】:

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

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

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

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

在上图中,我想要第一行的两行,第二行的两行和第三行的三行。

这可能吗?

提前致谢

【问题讨论】:

  • 目前没有办法做到这一点。也许您应该尝试通过Bugzilla@Mozilla 请求此功能
  • 我想到了,谢谢@MehdiDehghani。如果您想发布答案,我很乐意接受。
  • 计数器标记有助于控制台不会被完全相等输出淹没。那么,您希望单独查看这些日志的原因是什么?
  • @SebastianZartner 我有一个特殊的调试案例,我需要知道日志字符串的确切顺序。无论如何我都解决了,但我只是想知道是否可以分离重复项。
  • 我也对这个很感兴趣。在这里,我试图解开一些谜团,我在我的大显示器上看了看,看到一些很小的数字在任意增长;脚本工作正常,只是控制台中的报告不如预期!!

标签: firefox logging console firefox-developer-tools


【解决方案1】:

更新

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

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

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

原答案

正如我在评论部分提到的,目前没有办法实现这一点。也许您应该尝试通过Bugzilla@Mozilla 请求此功能

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

【讨论】:

  • 至少在 Developer Edition 84.0b8(64 位)中不起作用。
  • 它在 v83 中按预期工作,因此请确保您使用的是最新的稳定版本。您也可以报告问题。 (尝试使用全新的配置文件,或在报告问题之前通过about:support 刷新 Firefox)
  • Linux 上的 84.0 和 83.1 都不能工作。
  • 我恐怕没有Linux,我在Windows 10上测试过
【解决方案2】:

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

console.log(yourvariable+" "+Math.random());

【讨论】:

  • 有趣,或者您可以添加时间戳。谢谢!
【解决方案3】:

现在 Web 控制台工具栏的右侧有一个设置菜单 (),其中包含 ✓ Group Similar Messages

【讨论】:

  • 我看到设置,我看到更改首选项“devtools.webconsole.groupWarningMessages”,但它什么也不做,即使在新鲜的 FF 中仍然对消息进行分组。任何想法?还是bug?
  • 只有我一个人,还是“分组类似消息”和“显示时间戳”设置都不能真正停止分组消息?我正在尝试查看一些 console.log 输出,但它仍然将所有内容组合在一起。火狐v79
  • @rossisdead 同意,好像没注意这个设置;无论切换状态如何,都为我分组。
  • 是的,我在 Windows 10 上的 Firefox 84.0.2 上遇到了同样的问题
  • 2021,还在分组!是的,即使我取消选中“将类似消息分组”,它仍然会将它们分组。坏火狐。
【解决方案4】:

要为任何浏览器解决此问题,您可以使用以下解决方法:覆盖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
})();

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

【讨论】:

  • 这确实对我有用,非常感谢!
【解决方案5】:

尽管您仍然无法执行此操作(截至 2018 年 8 月),但我有一个解决方法,您可能喜欢也可能不喜欢。

您必须在控制台中显示与某行不同/唯一的内容,以避免出现小数字并获得单独的行。

我正在调试一些 JavaScript。

我得到“返回错误”,控制台中的小蓝色 3 表示连续三个错误结果。 (我没有显示“真实”的结果。)

我想查看所有三个“错误”消息,以防我要进行更多测试。

我发现,如果我插入另一个 console.log 语句,每次都显示不同的内容(在我的例子中,我只是显示输入数据,因为它相对较短),然后我会为每个“返回 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

【讨论】:

    猜你喜欢
    • 2018-05-17
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-09
    • 2012-01-02
    相关资源
    最近更新 更多