2013-10-13 20 views
8

Tôi đã viết lại một ứng dụng web bằng cách sử dụng góc cạnh. Nhưng bây giờ tôi có vấn đề rằng nó không phải là dễ dàng như window.onerror = function(...) { ... } để gửi lỗi clientside đến máy chủ. Nhưng điều này thực sự hữu ích để phát hiện lỗi.AngularJS: ghi nhật ký máy chủ của lỗi khách hàng

tôi đã thêm một handler ngoại lệ tùy chỉnh để góc sử dụng đoạn mã sau

Nhưng điều này sẽ không cho phép tôi để có được vị trí nơi các ngoại lệ đến từ đâu. Bất kỳ gợi ý/kinh nghiệm làm thế nào để giải quyết điều này? Tôi cũng sẽ yêu một giải pháp có thể hoạt động với http://stacktracejs.com/

+0

Để tham khảo, chúng tôi bây giờ có thể có những thông tin stack trace từ các đối tượng ngoại lệ. exception.message và exception.stack. Bạn có thể tìm thêm thông tin tại đây: http://www.ozkary.com/2016/04/angularjs-log-client-errors-to-server.html – ozkary

+0

xem tại đây để có giải pháp ngăn xếp từ nhà đến nhà ➝ http://www.bennadel.com/blog/2542-logging-client-side-errors-with-angularjs-and-stacktrace-js.htm –

Trả lời

10

Tôi hiện đang sử dụng TraceKit có vẻ hoạt động khá tốt.

Đơn giản chỉ cần thêm video này vào góc startup-mã của bạn

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

+ này ở đâu đó

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 
    ... 
} 
0

Tuyên bố từ chối trách nhiệm: Nhà phát triển ứng dụng dựa trên django Im.

Tôi có thể đề xuất bạn sử dụng giải pháp dựa trên raven. Đó là dịch vụ khai thác gỗ với nhiều ràng buộc (cũng là javascript), và ứng dụng giám sát tuyệt vời sentry dựa trên django.

5

Chúng ta có thể sử dụng stacktrace.js by Eric Wendelin

  1. AngularJS có xử lý lỗi tốt.
  2. stacktrace.js cố gắng giải quyết vấn đề quan trọng khi nhận thông tin lỗi chính xác trên tất cả các trình duyệt.

Vì vậy, chúng tôi có thể tạo một trình bao bọc góc xung quanh stacktrace.js cho phép xử lý lỗi toàn diện.

Sau đây là 2 bài đăng trên blog giải thích rất độc đáo, cách ghi nhật ký lỗi phía máy khách JS sang phía máy chủ bằng cách sử dụng AngularJSstacktrace.js.

  1. http://engineering.talis.com/articles/client-side-error-logging/
  2. http://www.bennadel.com/blog/2542-logging-client-side-errors-with-angularjs-and-stacktrace-js.htm
Các vấn đề liên quan