有人知道如何在Node.js中打印堆栈跟踪吗?


当前回答

您可以使用node-stack-trace模块,这是一个强大的完整模块来跟踪调用堆栈。

其他回答

@isaacs的答案是正确的,但如果你需要更具体或更清晰的错误堆栈,你可以使用这个函数:

function getCleanerStack() {
   var err = new Error();
   Error.captureStackTrace(err, getCleanerStack);
    
   return err.stack;
}

这个功能的灵感直接来自控制台。NodeJS中的trace函数。

源代码:最新版本或旧版本。

在v15.12.0中,有各种方法可以做到这一点,

1. console.trace(anything)
2. Error.captureStackTrace(Object)
3. console.log(new Error().stack)
4. Try Catch - Use console.log(e), where `e` is catched by catch block

或者更好地使用 在任何Javascript代码中的stacktracejs

任何Error对象都有一个堆栈成员,该成员捕获了构造它的点。

var stack = new Error().stack
console.log( stack )

或者更简单地说:

console.trace("Here I am!")

如果有人还在寻找这个像我一样,那么有一个模块,我们可以使用称为“堆栈跟踪”。它真的很受欢迎。NPM链接

然后穿过痕迹。

  var stackTrace = require('stack-trace');
  .
  .
  .
  var trace = stackTrace.get();
  trace.map(function (item){ 
    console.log(new Date().toUTCString() + ' : ' +  item.toString() );  
  });

或者只是简单地打印跟踪:

var stackTrace = require('stack-trace');
.
.
.
var trace = stackTrace.get();
trace.toString();

现在主机上有一个专门的功能:

console.trace()