Chrome 调试器 - 如何关闭 console.log 消息分组?

问题描述 投票:0回答:4

比如说,在我的 Google Chrome 扩展程序中我这样做:

console.log(msg);

Chrome 调试器将类似的消息分组,如下所示:

enter image description here

有什么办法可以关闭它并让消息按原样发布吗?

javascript google-chrome google-chrome-extension google-chrome-devtools
4个回答
46
投票

它只会折叠相同的连续行,我不认为这有什么问题,但是通过控制台右上角的设置按钮,您可以启用“显示时间戳”,这会将它们放在不同的行上:

enter image description here

你可以看到他们只用这个折叠连续的重复项:

msgs = ['hello', 'world', 'there'];
for (i = 0; i < 20; i++) console.log(msgs[Math.floor((i/3)%3)]) 

console api 有许多其他功能可以帮助您遵循代码。例如,

console.count(label)
记录标签,其中包含记录次数的计数,
console.group()
可让您将其他日志记录调用分组在一起,
console.timeline(label)
可让您将日志分组到时间线中。


6
投票

在控制台窗口的右上角,有一个齿轮按钮,可打开一个面板,其中包含名为“在控制台中对类似消息进行分组”的设置。如果取消选中此复选框,类似的日志条目将不再分组在一起。

现在也可在 DevTools 设置 > 首选项 > 控制台 > 在控制台中对类似消息进行分组下使用。

“显示时间戳”也会使消息取消分组。


2
投票

有人遇到了同样的问题:Google Chrome 开发者工具控制台日志记录…几乎没用?没有答案来禁用此功能。

作为解决方法,您可以在开发者工具设置中为控制台启用显示时间戳


1
投票

如果消息相同,则仅与上一条消息一起折叠。 为了防止消息被折叠,您可以交替日志级别,或使用交替日志输出。

console.log

console.debug
 在 Chrome 的开发工具中视觉上相似(即前面没有图标)。如果您不使用详细过滤器,那么在 
console.log
console.debug
 之间交替即可解决您的问题:

console.log('message'); console.debug('message'); console.log('message'); // Convenience function: function log() { log.counter = log.counter ? log.counter + 1 : 1; console[log.counter % 2 ? 'log' : 'debug'].apply(console, arguments); }

获得所需结果的另一种方法是在消息前面插入一个不可见字符(注意:我使用

%s

来防止出现额外的空格(请参阅
devtools格式选项),并且还使用ZWSP来防止出现额外的空格。任何视觉字符都不会出现):

function log() { log.counter = log.counter ? log.counter + 1 : 1; var args = [].slice.call(arguments); if (log.counter % 2) { args.unshift('%s\u200B'); // ZWSP (zero-width space, you won't see it) } console.log.apply(console, args); }

演示:

http://jsfiddle.net/x3725j38/1/

© www.soinside.com 2019 - 2024. All rights reserved.