首页 > 代码库 > 发送JS错误日志到服务器

发送JS错误日志到服务器

JS记录错误日志/捕捉错误   

//onerror提供异常信息,文件路径和发生错误代码的行数的三个参数。

window.onerror = function(e,url,index){ var msg = e.message || e|| "未知错误"; alert("错误信息:"+msg+",错误路径:"+ul+",行数:"+index); }

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
var logger = (function(){
    var loghost = ‘http://127.0.0.1/log.gif?‘;
    var log = function(err){
        var img = new Image(0,0);
        var _url =[];
        _url.push(‘name‘+‘=‘+encodeURIComponent(err.name));
        _url.push(‘message‘+‘=‘+encodeURIComponent(err.message));
        _url.push(‘location‘+‘=‘+encodeURIComponent(err.location));
        if(err.line)
            _url.push(‘line‘+‘=‘+encodeURIComponent(err.line));
        if(err.func)
            _url.push(‘func‘+‘=‘+encodeURIComponent(err.func));
 
        var url = _url.join(‘&‘);
        img.src = http://www.mamicode.com/loghost+url;
        console.log(img.src);
    }
    return {log:log};
})();
 
function trapError(msg, URI, ln) {
    // wrap our unknown error condition in an object
    var error = new Error(msg);
    error.location = URI; // add custom property
    error.line = ln;
    logger.log(error);
    warnUser();
    return true; // stop the yellow triangle
}
 
window.onerror = trapError;
 
function foo() {
    try {
        riskyOperation();
    } catch (err) {
        // add custom property
        err.location = location.href;
        err.func = ‘foo‘;
        logger.log(err);
        warnUser();
    }
}
function warnUser() {
    alert("An error has occurred while processing this page.\
        Our engineers have been alerted!");
    // do something
}
foo();