为啥 Google Chrome 将相同的 console.log 消息分组?

Posted

技术标签:

【中文标题】为啥 Google Chrome 将相同的 console.log 消息分组?【英文标题】:Why does Google Chrome group identical console.log messages?为什么 Google Chrome 将相同的 console.log 消息分组? 【发布时间】:2011-07-31 21:17:46 【问题描述】:

我一直在寻找一种方法来修改开发者工具控制台登录 Google Chrome 的行为。我没办法了。

默认情况下,控制台不会显示每次记录的时间。它似乎记录了将同一消息发送到日志的次数。当您记录项目以验证或调试 Web 应用程序中的工作流时,这无济于事。

如果我要登录:

1 2 1 1 2 3

我希望看到这一点,但你得到的更像是:

(3) 1 (2) 2 3

有什么方法可以改变这种行为并强制控制台向您显示已记录的每一项?

谢谢,

JDF

【问题讨论】:

如果它表现得那样,那就是一个错误。 Chrome 应该只折叠相同的连续行,这很好,除非你在控制台中做 ASCII 艺术或其他东西。在我的 Chrome 副本上,这是按预期工作的,而不是您描述的方式:[1,2,1,1,2,3].forEach(function(x)console.log(x););跨度> Chrome 处理 console.log('a:1); console.log(a:42) 重复并折叠它们。非常烦人,使日志记录几乎没用。如果您可以手动展开条目,则可以折叠条目。 不适合我。如果您想记录对象,您可以使用console.dir(a:2);,它确实为您提供了整个可扩展对象,而不是将其转换为字符串 如果您按顺序记录这些数字,您应该得到12(2) 123。试试看:for(var i=0;i<6;i++)console.log([1,2,1,1,2,3][i]); 您始终可以启用时间戳并按时间检查它们的顺序。如果您要获得(3) 1,那将是一个错误。我认为您没有按照您认为的顺序记录内容。 【参考方案1】:

在您的开发工具控制台中:

    按组合键 CTRL+SHIFT+P。 写:“显示时间戳” 选择它! 完成!

每个输出到控制台,都有自己的一行!

【讨论】:

【参考方案2】:

如果你点击控制台窗口右上角的齿轮,你会看到“Group similar”选项,这个选项可能被选中了,如果你不选中这个,它将分别显示每一行。

【讨论】:

无论出于何种原因,这对我不起作用。时间戳解决方案确实 @jona 是怎么回事?你没有齿轮或选项吗?也许您的 Chrome 版本不同。 绝对是最新版本的 chrome,我看到“组相似”复选框,选中它,重新启动 chrome,所有基础 - 只是不起作用:耸耸肩: 可能消息略有不同?你有消息区域的屏幕截图吗?【参考方案3】:

好吧,我似乎找到了足够体面的工作...我将日志记录功能修改为以下内容:

function WriteToLog(msg, clear) 
    try 
        var now = new Date();
        if (clear) 
            console.clear();
        
        console.log('(' + now.getTime() + ') - ' + msg);
     catch (e) 

    

这将获得自 1970 年 1 月 1 日以来的毫秒数...这应该足以在我不久的将来拥有的任何计算机上记录任何进程。 :)

它使日志更难以阅读,并且该值几乎没有用......但它足以绕过默认的计数行为。

感谢收看。我希望我不是唯一一个严重不喜欢这个功能的人。

【讨论】:

为什么不试试console.warn('(' + now.getTime() + ') - ' + msg); 然后过滤掉警告?

以上是关于为啥 Google Chrome 将相同的 console.log 消息分组?的主要内容,如果未能解决你的问题,请参考以下文章