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


当前回答

如果有人还在寻找这个像我一样,那么有一个模块,我们可以使用称为“堆栈跟踪”。它真的很受欢迎。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.log(ex, ex.stack.split("\n"));

结果示例:

[Error] [ 'Error',
  '    at repl:1:7',
  '    at REPLServer.self.eval (repl.js:110:21)',
  '    at Interface.<anonymous> (repl.js:239:12)',
  '    at Interface.EventEmitter.emit (events.js:95:17)',
  '    at Interface._onLine (readline.js:202:10)',
  '    at Interface._line (readline.js:531:8)',
  '    at Interface._ttyWrite (readline.js:760:14)',
  '    at ReadStream.onkeypress (readline.js:99:10)',
  '    at ReadStream.EventEmitter.emit (events.js:98:17)',
  '    at emitKey (readline.js:1095:12)' ]

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

console.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();