node.js - 调用堆栈的深度

标签 node.js logging stack

有没有办法知道 Node.js 中调用堆栈的当前深度?

在 Java 中,我这样做了:

int depth = Thread.currentThread().getStackTrace().length;

然后我可以用它来记录日志,如下所示:

myLogger.writeLogMessage(depth, message);

其中“writeLogMessage”使用深度参数来创建格式良好的方法调用树。

现在我想在Node.js中做同样的事情,但我不知道,如何计算深度?

最佳答案

错误对象有一个名为“stack”的 getter,它返回一个包含堆栈跟踪的字符串。来自 REPL 的示例:

> console.log(Error().stack)
Error
    at Error (<anonymous>)
    at repl:1:14
    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:754:14)
    at ReadStream.onkeypress (readline.js:99:10)
    at ReadStream.EventEmitter.emit (events.js:98:17)

您应该能够通过计算行数来计算深度。

关于node.js - 调用堆栈的深度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23037398/

相关文章:

mysql - 如何在父表没有子记录的 sequelize-mySql 中查找记录

java - 如何使用 log4j2 只记录一个级别?

python - 在 Django 的管理员上记录事件 - Django

检查堆栈分配是否失败?

javascript - 在 Node 中,这个内部函数等于 undefined

javascript - AngularJS 上传文件并将其发送到数据库

javascript - stub process.nextTick 以传递参数

c# - 堆与堆栈分配影响 (.NET)

javascript - 使用javascript对堆栈元素进行排序