6

console.traceを使用するときにスタックトレースの深さを指定する方法はありますか?これは、行番号とファイルを識別するための情報およびログレベルのメッセージに特に役立ちます。

4

2 に答える 2

6

変数を設定することで、収集されるスタック フレームの数を制御できます。

Error.stackTraceLimit

0 に設定すると、スタック トレースの収集が無効になります。収集するフレームの最大数として、有限の整数値が使用されます。Infinity に設定すると、すべてのフレームが収集されます。

別のオプションは、コマンドライン フラグを使用すること--stack-trace-limitです。

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

参考文献:

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

于 2012-06-15T13:24:05.583 に答える
5

メソッド 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

そのため、トレース深度を設定できないようです。

于 2012-06-15T13:21:21.963 に答える