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

Javascript 如何使用console.trace()记录js堆栈跟踪,但将其折叠,javascript,google-chrome-devtools,stack-trace,Javascript,Google Chrome Devtools,Stack Trace,我想在我的应用程序中记录某些函数调用的堆栈跟踪。我喜欢console.trace()显示数据的方式,但它总是将数据吐出到控制台。如果你有几十个日志,那么很快就会变得一团糟 一些人建议使用log Error().stack,其他人建议使用console.Error(),其他人建议使用Error.captureStackTrace()。但所有这些都有我不喜欢的东西。console.error使控制台混乱,很难看到真正的错误。其他人没有打印出好的或可用的堆栈 应该有一种方法可以简单地将console.

我想在我的应用程序中记录某些函数调用的堆栈跟踪。我喜欢console.trace()显示数据的方式,但它总是将数据吐出到控制台。如果你有几十个日志,那么很快就会变得一团糟

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


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

答案是使用console.groupCollapsed()

在控制台中看起来像这样。(在chrome中工作,不确定其他人)

控制台。错误
可能对您有效。 它显示所有日志都已折叠

console.trace
以下是相同的日志,但带有跟踪。默认情况下,它们会展开

不要担心
.error
调用中日志的两个看似不同的扩展变体。它们在
.trace
.error
调用的相同折叠或展开状态下看起来相同


您可能会担心日志级别的过滤,这是一个合理的问题。为此,我只能建议您在日志前添加一个唯一的可搜索字符串,以将其过滤掉或过滤进去。

这是一个很好的解决方案,但存在一个问题,即无法按级别(错误、警告、信息、详细信息)和过滤文本框中的文本过滤掉该组。本问题描述如下:
    console.groupCollapsed('name to show to identify trace');
    console.log('additional data hidden inside collapsed group');
    console.trace(); // hidden in collapsed group
    console.groupEnd();