【问题标题】:How to override or set console.log’s file reference in chrome如何在 chrome 中覆盖或设置 console.log 的文件引用
【发布时间】:2014-05-09 10:01:17
【问题描述】:

我目前正在为 chrome 的 console 对象编写一个包装器,以便在 web worker 中提供相同的功能,至少目前还不支持日志记录。

一旦工作人员通知主线程,我会复制日志调用,如下所示:

Function.prototype.apply.call(console.log, console, [workerLogObject])

此时,chrome 识别调用并引用控制台本身内的文件、行和列(在右侧)。根据 console.log 的定义显示的信息使用该方法被调用的任何资源——在我的例子中是包装器。

回到问题,是否可以在调用console 对象的方法时更改文件引用,以便在我的情况下显示另一个文件,如网络工作者?

【问题讨论】:

  • 我从来没有找到过,我看过......
  • @JeremyJStarcher 听起来像是个坏消息……你能告诉我是否有办法强制像 http://0.0.0.0/js/testworker.js:5:11 这样的控制台 URL 使用 chrome devtools 而不是普通标签打开?
  • How to debug web workers的可能重复

标签: javascript html google-chrome google-chrome-devtools


【解决方案1】:

尝试从工作人员那里抛出异常,而不是登录到控制台。 我还没有尝试过,但你也许可以得到准确的行号和文件位置

throw 'a debug message';

显然这将终止执行块,因此请确保在它之前完成实际工作。

【讨论】:

  • 我知道如何获取文件和行号。我只是做类似(new Error).stack 的事情并通过被调用者进行查找,尽管您的解决方案可能会更好。我需要将此信息推送到console.log,以防止总是显示错误的文件信息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-03
  • 2016-06-05
  • 1970-01-01
  • 2021-09-30
相关资源
最近更新 更多