1. ホーム
  2. javascript

[解決済み] クロームやファイヤフォックスで、console.trace()の結果を文字列として取得する方法は?

2022-09-14 18:59:34

質問

console.trace() はその結果をコンソールに出力します。

その結果を文字列として取得し、ファイルに保存したいのですが。



私は関数の名前を定義していませんし、私はまた、それらの名前を取得することはできません。 callee.caller.name .

どのように解決するのですか?

firefoxについてはよくわかりませんが、v8/chromeでは、Errorコンストラクタにある captureStackTrace . ( 詳細はこちら )

ということで、ハチャメチャな方法としては

var getStackTrace = function() {
  var obj = {};
  Error.captureStackTrace(obj, getStackTrace);
  return obj.stack;
};

console.log(getStackTrace());

通常は getStackTrace がキャプチャされたとき、スタック上にあるはずです。そこで第二引数で除外されるのは getStackTrace がスタックトレースに含まれないようにします。