有時,當我加載應用程序時,我會看到雜散的日誌語句,但我不記得日誌語句是如何調用的。有沒有辦法從Chrome開發人員工具中找到控制檯日誌消息的堆棧跟蹤?獲取控制檯消息的堆棧跟蹤
現在,我包的console.log與打印堆棧跟蹤功能:
console.log = (function() {
var oldLog = console.log.bind(console);
return function() {
try { throw new Error(); } catch (e) {
oldLog(
e.stack.split('\n')
.slice(2)
.map((line) => line.trim().replace('at', 'from'))
.join('\n')
);
}
oldLog.apply(null, Array.prototype.slice.call(arguments));
};
}());
這將打印堆棧跟蹤,除了日誌信息。爲了這是有用的,我必須在我的任何代碼運行之前插入此代碼。有沒有辦法從控制檯上找到這些信息,而不必添加這個包裝?
我主要使用Chrome開發人員工具,但如果在任何其他瀏覽器中都有可能,我會很感興趣。
當您從代碼(而不是控制檯)執行console.log時,您可以一直查看控制檯的右側以查看位置(甚至可以單擊它來打開它)。當然,如果你用自己的函數覆蓋它,那麼它就會工作,因爲那麼它只會指向你的替代console.log,而不是直接在代碼中使用的那個。 – 2015-02-09 16:13:38
啊,對。那麼堆棧跟蹤呢? – Robz 2015-02-09 16:16:56
那些只存在錯誤,所以你將無法使用console.log來獲取。你有沒有嘗試過console.trace? – 2015-02-09 16:17:26