用户登录
用户注册

分享至

如何使用chrome或firefox在javascript中将console.trace()的结果作为字符串?

  • 作者: 灰常想去泰国
  • 来源: 51数据库
  • 2022-11-16

问题描述

console.trace() 在控制台上输出结果.
我想以字符串形式获取结果并将它们保存到文件中.

我没有为函数定义名称,也无法使用 callee.caller.name 获取它们的名称.

console.trace() outputs its result on console.
I want to get the results as string and save them to a file.

I don't define names for functions and I also can not get their names with callee.caller.name.

推荐答案

我不确定 firefox,但在 v8/chrome 中,您可以在 Error 构造函数上使用名为 captureStackTrace 的方法.(更多信息在这里)

I'm not sure about firefox, but in v8/chrome you can use a method on the Error constructor called captureStackTrace. (More info here)

因此,获得它的一种 hacky 方法是:

So a hacky way to get it would be:

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

console.log(getStackTrace());

通常,getStackTrace 在被捕获时会在堆栈上.那里的第二个参数将 getStackTrace 排除在堆栈跟踪中.

Normally, getStackTrace would be on the stack when it's captured. The second argument there excludes getStackTrace from being included in the stack trace.

软件
前端设计
程序设计
Java相关