【发布时间】:2015-03-21 22:45:17
【问题描述】:
我发现这个问题与我正在寻找的“接近”:
How to get result of console.trace() as string in javascript with chrome or firefox?
但是,有没有办法实际替换日志条目来自哪个 JS 文件(和行号)?
我通过另一种方法汇集所有调试跟踪,所以无论我记录/跟踪什么,它总是显示为相同的file:line#(一旦点击,就无法遍历堆栈/代码,如您可以在实时调试会话期间进行)。
我可以尝试在给定对象之后立即记录堆栈Error.captureStackTrace(obj, trace);(因为在同一跟踪中连接它们会将它们视为字符串,而不是可点击的日志条目),但我希望有一种方法劫持 Chrome 的控制台 :)
【问题讨论】:
-
对于生产级别,我有不同的方法。而不是试图只隐藏部分跟踪。我劫持了控制台,因此任何正在生产中且具有
console.logtracewarndir等的东西都将存储在一个对象中,而无需实际调用console.log。因此,通过这种方式,每个错误都存储在一个对象中,该对象可以被清空,也可以发送到我们的服务器。我们这样做也是因为我们大多数开发人员都患有图雷特综合症,而且大多数日志对业务/用户/老板不友好。 -
据我所知,没有其他方法可以劫持控制台堆栈跟踪,以便文件或行号不同。即使你设法做到这一点,那又有什么意义呢?首先,有经验的用户(程序员)将能够看到您已经劫持了控制台,并且他可以使用小书签在早期阶段劫持控制台。其次,您将永远无法劫持核心错误(即 net::ERR_BLOCKED_BY_CLIENT )。我们试图捕捉网络错误,这样即使我们正在处理它,老板也不会因为“看看有错误”而惊慌。
标签: javascript google-chrome debugging console.log