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