如何使用console.trace()记录js堆栈跟踪,但如何使其保持折叠

时间:2018-10-01 16:55:07

标签: javascript google-chrome-devtools stack-trace

我想在我的应用程序中记录某些函数调用的堆栈跟踪。我喜欢用console.trace()呈现数据的方式,但是它总是将其吐出来以扩展到控制台。如果您有数十条日志,则会很快变得混乱。

有人建议使用日志Error()。stack,其他人建议使用console.error(),其他人建议使用Error.captureStackTrace()。但是所有这些都有我不喜欢的东西。 console.error使控制台混乱,使您很难看到真正的错误。其他人则没有打印出好看或可用的堆栈。

应该有一种方法可以简单地将console.trace()默认设置为折叠。

2 个答案:

答案 0 :(得分:9)

答案是使用console.groupCollapsed();

    console.groupCollapsed('name to show to identify trace');
    console.log('additional data hidden inside collapsed group');
    console.trace(); // hidden in collapsed group
    console.groupEnd();

在控制台中看起来像这样。 (适用于Chrome浏览器,不确定其他用户)

enter image description here

答案 1 :(得分:-1)

console.error可能更适合您。

它显示所有已折叠的日志。

screenshot with console.error

console.trace

这里是相同的日志,但带有跟踪。默认情况下会展开它们。

enter image description here

不用担心.error调用中日志的两个看似不同的扩展变体。通过.trace.error调用,它们对于相同的折叠或展开状态看起来都是相同的。

您可能会担心与此相关的日志级别过滤,这是一个有效的问题。为此,我只能建议您在日志中添加一个唯一的可搜索字符串,以将其过滤掉或过滤掉。