比如说,在我的 Google Chrome 扩展程序中我这样做:
console.log(msg);
Chrome 调试器将类似的消息分组,如下所示:
有什么办法可以关闭它并让消息按原样发布吗?
它只会折叠相同的连续行,我不认为这有什么问题,但是通过控制台右上角的设置按钮,您可以启用“显示时间戳”,这会将它们放在不同的行上:
你可以看到他们只用这个折叠连续的重复项:
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)
可让您将日志分组到时间线中。
有人遇到了同样的问题:Google Chrome 开发者工具控制台日志记录…几乎没用?没有答案来禁用此功能。
作为解决方法,您可以在开发者工具设置中为控制台启用显示时间戳。
如果消息相同,则仅与上一条消息一起折叠。
为了防止消息被折叠,您可以交替日志级别,或使用交替日志输出。
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);
}
演示: