如何在 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 保存到文件中
如何使用 Javascript 在 Chrome 浏览器控制台上为背景着色