如何在 chrome 中覆盖或设置 console.log 的文件引用

Posted

技术标签:

【中文标题】如何在 chrome 中覆盖或设置 console.log 的文件引用【英文标题】:How to override or set console.log’s file reference in chrome 【发布时间】: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的可能重复 【参考方案1】:

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

throw 'a debug message';

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

【讨论】:

我知道如何获取文件和行号。我只是做类似(new Error).stack 的事情并通过被调用者进行查找,尽管您的解决方案可能会更好。我需要将此信息推送到console.log,以防止总是显示错误的文件信息

以上是关于如何在 chrome 中覆盖或设置 console.log 的文件引用的主要内容,如果未能解决你的问题,请参考以下文章

将 Chrome 中的 console.log 保存到文件中

如何在移动 chrome 中覆盖字体增强

如何隐藏 Chrome“在调试器中暂停”覆盖?

如何使用 Javascript 在 Chrome 浏览器控制台上为背景着色

如何在 Chrome 中覆盖用户代理样式表并正确显示我的设计

如何在 Chrome 或 Safari 中的缩小 JS 函数上设置断点?