有人知道如何在Node.js中打印堆栈跟踪吗?
当前回答
在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
其他回答
尝试错误。captureStackTrace (constructorOpt targetObject[])。
const myObj = {};
function c() {
// pass
}
function b() {
Error.captureStackTrace(myObj)
c()
}
function a() {
b()
}
a()
console.log(myObj.stack)
函数a和b在错误堆栈中被捕获并存储在myObj中。
任何Error对象都有一个堆栈成员,该成员捕获了构造它的点。
var stack = new Error().stack
console.log( stack )
或者更简单地说:
console.trace("Here I am!")
在控制台以更易读的方式打印错误的堆栈跟踪:
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)' ]
在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
如果有人还在寻找这个像我一样,那么有一个模块,我们可以使用称为“堆栈跟踪”。它真的很受欢迎。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();