簡體   English   中英

從Google Chrome導出Javascript控制台日志

[英]Export Javascript Console log from Google Chrome

有沒有辦法導出記錄到谷歌瀏覽器的JavaScript控制台的消息?

如果沒有,有人能建議一個很好的方法來診斷客戶端機器上的JavaScript問題嗎? 盡管建立了相同的環境,但我無法在本地復制問題。

第1步:添加一堆有助於診斷問題的console.log語句

步驟2:添加邏輯以在客戶端系統上重新定義console.log,以便它實際將其參數保存到window.log(或其他),而不是實際將它們記錄到控制台。

window.log = []
console = console || {"log":function(x) {window.log.push(x);}}

步驟3:添加一個onUnload處理程序,該處理程序將一個AJAX請求激發到您的服務器,其中window.log的內容作為其參數之一

第4步:獲利! ;-)

這個系統的一個額外好處是(一旦你設置好了)你就可以不加思索地使用console.log,無論你是在你的開發環境還是你的實時環境中,它都會做正確的事情。

這是我之前答案的略短/簡單版本。 為了簡單起見,我們只需對每個日志進行AJAX調用,為了讓事情變得更加容易,我們將使用jQuery來完成“繁重的工作”。 (如果你使用jQuery之外的JS庫,它應該有某種類似的方法;如果沒有,或者如果你沒有使用JS庫......時間認真考慮jQuery!)哦,我們會拋出在一些服務器端偽代碼中,以證明方程的這一部分是多么容易。

第1步:添加一堆有助於診斷問題的console.log語句

步驟2:添加邏輯以在客戶端系統上重新定義console.log,以便在沒有控制台的情況下將日志發送到服務器

var SERVER_URL = "www.yourServer.com/ajaxLogger.jsp";
var ajaxConsole = {"log":function(x) {
    $.get(SERVER_URL, {"log":x});
}}
console = console || ajaxConsole; // If there is no console, use the AJAX one

第3步:在服務器上創建日志記錄頁面

以下示例使用偽代碼,因為每個人都有不同的服務器端語言:

String log = pageParameters["log"];
Database.execute("INSERT INTO yourLogTable (log, date) VALUES ('" +
        dbEscape(log) +"', current date)");

有一個開源工具,允許您將所有console.log輸出保存在服務器上的文件中 - JS LogFlush (插件!)。

JS LogFlush是一個集成的JavaScript日志記錄解決方案,包括:

  • 跨瀏覽器無UI替換console.log - 在客戶端。
  • 日志存儲系統 - 在服務器端。

演示

您可以使用我的JavaScript日志庫log4javascript 你需要:

  • 設置log4javascript以使用AjaxAppender將日志消息發送到服務器(請參閱快速入門指南 ,靠近底部)
  • 向JavaScript添加日志記錄調用
  • 使用您選擇的技術在服務器上收集日志消息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM