2014-09-19 55 views
0

我有一個Javascript項目,它工作正常...人們已經在使用它,有時它顯示錯誤...我不希望用戶看到錯誤。我想登錄一些File.txt erros,或者通過電子郵件發送它們,並提供有關錯誤的詳細信息(錯誤類型,url,...)。我想要這樣的事情:jQuery - 如何記錄錯誤文件

try{ 
    //code 
    var a = 1 + 1; 

}catch(e){ 
    Log(File.txt, e.toString(), url); 
//or 
    Mail([email protected], e.toString(), url); 
} 

是否有可能?有沒有一些圖書館可以做到這一點?

回答

0

Java腳本是一種客戶端語言,運行在瀏覽器不會讓你做任何事情的沙盒中。所以沒有內置函數允許它。您可以做的最好的事情是在某種模塊中打包日誌或電子郵件,併發出Web請求來執行您想要的電子郵件/日誌記錄。雖然我不確定你爲什麼要這樣做,因爲任何錯誤都應該由你的前端代碼來處理。

0

嘗試

var Log = function (url, data) { 
    return $.post(url, { 
     json: JSON.stringify({ 
      "err": data 
     }) 
    }, "json") 
}; 

try { 
    //code 
    var a = abc + 1; 

} catch (e) { 
    // Log(File.txt, e.toString(), url); 
    //or 
    // Mail([email protected], e.toString(), url); 
    Log("File.php", e.message) 
    // .then(

    // function (data) { 
    // console.log(data.err) 
    // }, function (jqxhr, textStatus, errorThrown) { 
    // console.log(errorThrown) 
    // }) 
}; 

的jsfiddle http://jsfiddle.net/guest271314/gu1gmsug/

+0

的console.log只能在調試窗口打開時,這反過來會導致生產錯誤,你可能需要在登錄前檢查。 – dbarnes 2014-09-19 15:58:36

+0

這對我有幫助嗎?它在哪裏發送日誌? – Thiago 2014-09-19 16:20:13

+0

@Thiago在函數'Log()'中,'url'是'File.php',其中'$ .post()'發送的'data'被記錄到'File.txt'中。需要創建'File.php'來處理post,'File.txt'來追加'data'到。 – guest271314 2014-09-20 14:13:55