這是一個菜鳥問題。Javascript日誌記錄
如果我想將日誌記錄添加到在瀏覽器(IE,FF等)中運行的Java腳本應用程序,該怎麼辦?據我所知,我不能保存日誌文件在客戶端主機。所以,我只有兩個選擇:在新的瀏覽器窗口中顯示我的日誌信息(如「黑鳥」)或將日誌記錄發送到服務器。
它是正確的嗎?他們通常使用什麼樣的日誌記錄?
這是一個菜鳥問題。Javascript日誌記錄
如果我想將日誌記錄添加到在瀏覽器(IE,FF等)中運行的Java腳本應用程序,該怎麼辦?據我所知,我不能保存日誌文件在客戶端主機。所以,我只有兩個選擇:在新的瀏覽器窗口中顯示我的日誌信息(如「黑鳥」)或將日誌記錄發送到服務器。
它是正確的嗎?他們通常使用什麼樣的日誌記錄?
您不能在客戶端主機上「存儲」日誌文件。您可以打開一個窗口並將其可視化,但you(假設您正在運行Web應用程序)永遠不會看到它。
如果您絕對要求必須獲取客戶端日誌,您需要使用AJAX將它們發送回服務器。 Here's a blog post我真的很喜歡它。
另一種可能性是jsnlog庫http://js.jsnlog.com/ 它可以讓你發送客戶端日誌到服務器。
看看https://log4sure.com(披露:我創建了它) - 但它非常有用,請檢查並自行決定。它允許您記錄錯誤/事件,並且還可以讓您創建自定義日誌表。它將所有內容都存儲在自己的服務器上,因此您無需擔心。它還允許您實時監控日誌。最好的部分是免費的。
您也可以使用涼亭安裝它,使用涼亭安裝log4sure
的設置代碼真的是一件容易的事:
// setup
var _logServer;
(function() {
var ls = document.createElement('script');
ls.type = 'text/javascript';
ls.async = true;
ls.src = 'https://log4sure.com/ScriptsExt/log4sure.min.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ls, s);
ls.onload = function() {
// use your token here.
_logServer = new LogServer("use-your-token-here");
};
})();
// example for logging text
_logServer.logText("your log message goes here.")
//example for logging error
divide = function(numerator, divisor) {
try {
if (parseFloat(value) && parseFloat(divisor)) {
throw new TypeError("Invalid input", "myfile.js", 12, {
value: value,
divisor: divisor
});
} else {
if (divisor == 0) {
throw new RangeError("Divide by 0", "myfile.js", 15, {
value: value,
divisor: divisor
});
}
}
} catch (e) {
_logServer.logError(e.name, e.message, e.stack);
}
}
// another use of logError in window.onerror
// must be careful with window.onerror as you might be overwriting some one else's window.onerror functionality
// also someone else can overwrite window.onerror.
window.onerror = function(msg, url, line, column, err) {
// may want to check if url belongs to your javascript file
var data = {
url: url,
line: line,
column: column,
}
_logServer.logError(err.name, err.message, err.stack, data);
};
// example for custom logs
var foo = "some variable value";
var bar = "another variable value";
var flag = "false";
var temp = "yet another variable value";
_logServer.log(foo, bar, flag, temp);
我認爲他絕對必須讓他們或他不會問=)它不是一個壞概念tbh和該職位的技術是完美的^^現代瀏覽器實際上允許編寫文件和ActiveX組件總是在那裏;如果客戶端接受運行它 – mschr