Javascript 有没有办法欺骗/重定向Chrome';调用console.log时是否有stacktrace?

Javascript 有没有办法欺骗/重定向Chrome';调用console.log时是否有stacktrace?,javascript,google-chrome,debugging,console.log,Javascript,Google Chrome,Debugging,Console.log,我发现这个问题“接近”我想要的: 但是,有没有办法实际替换日志项来自哪个JS文件(和行号) 我正在通过另一种方法收集所有调试跟踪,因此无论我记录/跟踪什么,它总是显示为相同的文件:line#(一旦单击,就无法像在实时调试会话中那样遍历堆栈/代码) 我可以尝试简单地记录堆栈Error.captureStackTrace(obj,trace)紧跟在给定对象之后(因为在同一个跟踪中连接它们会将它们视为字符串,而不是可单击的日志条目),但我希望有一种方法可以劫持Chrome的控制台:)这可能不是您想

我发现这个问题“接近”我想要的:

但是,有没有办法实际替换日志项来自哪个JS文件(和行号)

我正在通过另一种方法收集所有调试跟踪,因此无论我记录/跟踪什么,它总是显示为相同的
文件:line#
(一旦单击,就无法像在实时调试会话中那样遍历堆栈/代码)


我可以尝试简单地记录堆栈
Error.captureStackTrace(obj,trace)紧跟在给定对象之后(因为在同一个跟踪中连接它们会将它们视为字符串,而不是可单击的日志条目),但我希望有一种方法可以劫持Chrome的控制台:)

这可能不是您想要的,但您可以使用Image().src,如果您希望在服务器上捕获错误副本以用于报告/记录,是否以静默方式将其发送到服务器

下面是一个人如何使用ExtJS,但是Image().src位是纯javascript(我想!):


我认为这不是他真正想要的。他问是否有任何方法可以完全劫持控制台,让普通用户无法跟踪调试或错误的日志堆栈。对于生产级别,我有不同的方法。而不是试图只隐藏跟踪的一部分。我劫持了控制台,因此任何正在生产且具有
console.log
跟踪
警告
目录
等的内容都将存储在对象中,而不实际调用console.log。因此,通过这种方式,每个错误都存储在一个对象中,该对象可以清空,也可以发送到我们的服务器。我们这样做也是因为我们大多数开发人员都患有tourette综合症,而且大多数日志对业务/用户/老板不友好。而且据我所知,没有其他方法劫持控制台堆栈跟踪,因此文件或行号会有所不同。即使你能做到这一点,那又有什么意义呢?首先,一个有经验的用户(程序员)可以看到您劫持了控制台,他可以在早期使用bookmarklet劫持控制台。其次,您将永远无法劫持核心错误(即net::ERR_被客户端阻止)。我们已经试着捕捉净错误,这样即使我们正在处理,老板也不会因为“看有错误”而惊慌失措。