如何禁用 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
请求此功能
虽然您仍然不能这样做(截至 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 控制台工具栏右侧现在有一个设置菜单 (),其中包含 ✓ 分组相似消息:
有人知道如何避免 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
请求此功能虽然您仍然不能这样做(截至 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 控制台工具栏右侧现在有一个设置菜单 (