2015-09-18 47 views
0

我計劃啓動一個我正在開發的Web應用程序的內測版,並且我想要一種方法來輕鬆地從測試人員那裏收集控制檯日誌數據。對於他們來說,「輕鬆」意味着輕鬆,因爲他們中的大多數技術人員不足以打開控制檯並複製/粘貼信息和錯誤。有什麼方法可以收集這些信息,包括所有log/info/warn/error語句和堆棧跟蹤?任何方式來收集測試者的控制檯日誌?

編輯:我應該澄清,它主要是我擔心的未處理的異常,所以重寫console.error將不會執行任何操作,因爲該函數沒有被調用。

+0

http://stackoverflow.com/questions/11403107/capturing-javascript-console-log –

+0

@RickS看到我上面的編輯。我不打電話給'console.log'或'console.error' – ffxsam

+0

window.error怎麼辦? https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror –

回答

2

更新

編輯完你的問題說,你想要的是記錄的錯誤,所以,你必須使用onerror事件,可在window對象。

window.addEventListener('error', function(e) { 
    // log whatever you want here 
}); 

你可以做這樣的事情在你的Javascript:

console.print = console.log; 
console.log = function() { 
    console.print(arguments); 

    // collect your data here, for example, sending a XHR 
    var params = "values=" + encodeURIComponent(JSON.stringify(arguments)); 
    var xhr = new XMLHttpRequest(); 
    xhr.open('POST', '/log-data'); 
    xhr.send(params); 
} 

您覆蓋console.log功能,你可以做任何你想做那裏。

+0

完美。而'e'也有我需要的所有細節,例如行號,錯誤信息,URL。 – ffxsam

0

查看一個支持日誌記錄到數據庫的日誌記錄庫,或者製作一些日誌記錄功能,它們會在出現log/info/warn/error時執行ajax post。使帖子包含簡單的信息,如時間戳,用戶和控制檯輸出。在後端有記錄所有的信息。這將是用戶最簡單的方式。

+0

當然,一個日誌記錄庫可以工作,但不是在我沒有計劃的未處理的異常(或者不能控制它是否在第三方庫中)的情況下。 – ffxsam

+0

@ffxsam您可以重寫'console.log'來寫入數據庫,並且您可以捕獲'window.onerror'並將其記錄到數據庫中。 – dman2306

+0

重寫'console.log'或'console。錯誤「將無濟於事。未處理的異常不使用這些函數。嘗試覆蓋這些函數,然後執行'throw Error('ouch')'並查看我的意思。 – ffxsam

0

不久前,我偶然發現了一個同樣的問題,爲學生的webapp。

請看看我的答案爲「獲取控制檯歷史記錄」:https://stackoverflow.com/a/40126638/1878974

基本上,我寫了一個簡單的庫來捕獲所有console[log/info/warn/err/debug]電話和他們console.history存儲爲一個數組。

該庫可在GitHub上,有更多的例子和文檔:https://git.io/console

因此,使用console.history,您可以 - 使用@ Buzinas的答案 - 輕鬆發佈完整的控制檯歷史記錄到你的服務器或存儲解決方案:

window.addEventListener('error', function(e) { 

    // POST request to server 
    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.open("POST", "/log-data"); 
    xmlhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); 
    xmlhttp.send(JSON.stringify(console.history)); 

}); 
0

有人告訴我一個非常酷的錯誤日誌記錄服務,名爲Rollbar,它實際上會自動記錄未處理的異常。我現在使用它,這是一個巨大的幫助!

相關問題