2016-02-16 137 views
0

我在角JS新手,已經創造了角的js的項目,並希望保持登錄服務器在客戶端存在的所有問題。登錄客戶端錯誤在服務器端使用角JS

通過各種博客飄,發現幾個建議爲應用棧的js,但無法理解相同的實施。

請建議是否可以從客戶端的一個單點登錄項目中的所有錯誤,請在服務器通過工廠或服務的方法採用了棱角分明的js。

回答

0

這可能是通過覆蓋$ exceptionHandler中構建的angulars。下面是我自己的應用程序中的代碼片段,它將任何失敗記錄到後端,但也會將它們打印到控制檯中,以防後端日誌記錄失敗。當我的JavaScript被縮小時,我使用StackTrace將它變回一個未縮小的堆棧跟蹤,並將其發送到我的後端。

function exceptionLoggingService($injector) { 
    function error(exception, cause) { 

     // preserve the default behaviour which will log the error 
     // to the console, and allow the application to continue running. 
     var $log = $injector.get('$log'); 
     var $window = $injector.get('$window'); 
     $log.error.apply($log, arguments); 

     var errorMessage = exception.toString(); 

     StackTrace.fromError(exception).then(function (arrayStack) { 
      var exceptionData = angular.toJson({ 
       errorUrl: $window.location.href, 
       errorMessage: errorMessage, 
       stackTrace: arrayStack, 
       cause: (cause || "") 
      }); 
      // now post this exceptionData to your backend 
     }).catch(function (backendLoggingError) { 
      $log.warn("Error logging failure."); 
      $log.log(backendLoggingError); 
     }); 

    } 

    return(error); 
} 

angular.module('dashboard-ui').factory('$exceptionHandler', ['$injector', exceptionLoggingService]) 
相關問題