2012-04-30 118 views
16

我想在beta測試時間內記錄我項目中的所有JS錯誤。現在我用下面的方法做到這一點:日誌javascript錯誤

window.onerror = myErrHandler; 

function myErrHandler(message, url, line) 
{ 
    $.ajax({ 
     cache: false, 
     type: "post", 
     data: {error:message, url:url, line:line, brouser:navigator.userAgent}, 
     url: "/Home/LogJavaScript/", 
     async: true 
    }); 
    return true; 
} 

但這種方式無法幫助獲得有關調用堆棧的任何信息。所以,有關jQuery或任何其他外部腳本中的錯誤信息都無濟於事。

有什麼辦法可以改善這種日誌記錄嗎?

+3

:這個鏈接將有助於http://stackoverflow.com/questions/147891/javascript-exception-stack-trace – dhinesh

回答

10

看看stacktrace.js,這應該可以做到。

+0

有什麼例子,你可以將堆棧跟蹤存儲到某個數據存儲(ajax)? –

+2

'stacktrace.js'不會幫助你使用'window.onerror'。它給你的onerror堆棧,而不是實際的錯誤。如果你想要堆棧,你必須嘗試/捕獲。 https://github.com/eriwen/javascript-stacktrace/issues/26#issuecomment-2410664 – bendytree

0

你也可以看看我的項目叫Muscula logs your JavaScript errors 這很容易設置,只需添加一個腳本片段,你正在記錄。 它是免費的:-)

+2

需要更好的網站設計。 –

+0

這不是免費的。這是每月14美元。 – Rocklan

+0

我發佈後它變成了付費。我還在一年前賣掉了它。 –

1

ExceptionHub是另一個很好的投遞(付費)服務,它記錄JS錯誤,與堆棧跟蹤,組織它們,等

0

看看JsLog.me服務。它捕獲錯誤並收集整個客戶端日誌,這對於在beta測試中恢復錯誤複製有幫助。它也適用於混合(PhoneGap/Cordova)應用程序。

1

你也可以嘗試https://www.atatus.com/。除了堆棧痕跡外,Atatus還會以一張清晰的圖片捕捉所有訪客的行爲,從而導致錯誤。除了JavaScript錯誤追蹤,Atatus還提供真實用戶監控,AJAX(XHR)監控和事務監控。