指定console.trace深度

时间:2012-06-15 11:31:03

标签: node.js

使用console.trace时是否有指定堆栈跟踪深度的方法?我会发现这对于信息和日志级别消息特别有用,以识别行号和文件

2 个答案:

答案 0 :(得分:5)

您可以通过设置变量

来控制收集的堆栈帧数
Error.stackTraceLimit

将其设置为0将禁用堆栈跟踪收集。任何有限整数值都将用作要收集的最大帧数。将其设置为Infinity意味着将收集所有帧。

另一种选择是使用命令行标志--stack-trace-limit

node --stack-trace-limit=50 test.js

参考文献:

http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi

答案 1 :(得分:2)

方法console.trace看起来像:

exports.trace = function(label) {
  // TODO probably can to do this better with V8's debug object once that is
  // exposed.
  var err = new Error;
  err.name = 'Trace';
  err.message = label || '';
  Error.captureStackTrace(err, arguments.callee);
  console.error(err.stack);
};

https://github.com/joyent/node/blob/master/lib/console.js#L61

所以看起来你无法设置跟踪深度。