Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS:客户端错误的服务器端日志记录_Javascript_Angularjs_Exception_Logging_Error Handling - Fatal编程技术网

Javascript AngularJS:客户端错误的服务器端日志记录

Javascript AngularJS:客户端错误的服务器端日志记录,javascript,angularjs,exception,logging,error-handling,Javascript,Angularjs,Exception,Logging,Error Handling,我已经用angular重写了一个web应用程序。但是现在我有一个问题,那就是向服务器发送客户端错误不像window.onerror=function(…){…}那么容易。但这确实有助于检测错误 我使用以下代码向angular添加了一个自定义异常处理程序 $provide.decorator("$exceptionHandler", function($delegate) { return function(exception, cause) { $delegate

我已经用angular重写了一个web应用程序。但是现在我有一个问题,那就是向服务器发送客户端错误不像
window.onerror=function(…){…}
那么容易。但这确实有助于检测错误

我使用以下代码向angular添加了一个自定义异常处理程序

    $provide.decorator("$exceptionHandler", function($delegate) {
    return function(exception, cause) {
        $delegate(exception, cause);
        log2server(exception + " (" + cause + ")");
    };
});

但这不允许我获取异常来自的位置。如何解决这个问题,有什么提示/经验吗?我还希望有一个能够与免责声明一起使用的解决方案:基于Im django的应用程序开发人员

我可以建议您使用基于Web的解决方案。它是一个带有许多绑定的日志发布服务,以及基于django的优秀监控应用程序。

我目前使用的这个应用程序似乎运行得很好

只需将其添加到角启动代码中即可

$provide.decorator("$exceptionHandler", function($delegate) {
    return function(exception, cause) {
        TraceKit.report(exception);
        $delegate(exception, cause);
    };
});
+这是什么地方

TraceKit.report.subscribe(function(errorReport) {
    var msg = 'msg: ' + errorReport.message + '\n\n';
    msg +="::::STACKTRACE::::\n"
    for(var i = 0; i < errorReport.stack.length; i++) {
        msg += "stack[" + i + "] " + errorReport.stack[i].url + ":" + errorReport.stack[i].line + "\n";
    }
    // log to server
    ...
}
TraceKit.report.subscribe(函数(errorReport){
var msg='msg:'+errorReport.message+'\n\n';
msg+=“:::STACKTRACE::\n”
对于(var i=0;i
我们可以使用

  • AngularJS
    具有良好的错误处理能力
  • stacktrace.js
    试图解决跨所有浏览器获取正确错误信息的重要问题
  • 因此,我们可以在stacktrace.js周围创建一个角度包装器,它提供全面的错误处理

    下面是两篇博文,很好地解释了如何使用
    AngularJS
    stacktrace.JS
    将客户端JS错误记录到服务器端


  • 作为参考,我们现在可以从exception对象.exception.message和exception.stack中获得堆栈跟踪信息。更多信息可以在此处找到:请参阅此处,以获得工作的stacktrace-to-home解决方案➝