-
Notifications
You must be signed in to change notification settings - Fork 4
/
logToServer.js
60 lines (51 loc) · 1.77 KB
/
logToServer.js
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
50
51
52
53
54
55
56
57
58
59
angular.module('logToServer', [])
.service('$log', function () {
this.log = function (msg) {
JL('Angular').trace(msg);
}
this.debug = function (msg) {
JL('Angular').debug(msg);
}
this.info = function (msg) {
JL('Angular').info(msg);
}
this.warn = function (msg) {
JL('Angular').warn(msg);
}
this.error = function (msg) {
JL('Angular').error(msg);
}
})
.factory('$exceptionHandler', function () {
return function (exception, cause) {
JL('Angular').fatalException(cause, exception);
throw exception;
};
})
.factory('logToServerInterceptor', ['$q', function ($q) {
var myInterceptor = {
'request': function (config) {
config.msBeforeAjaxCall = new Date().getTime();
return config;
},
'response': function (response) {
if (response.config.warningAfter) {
var msAfterAjaxCall = new Date().getTime();
var timeTakenInMs = msAfterAjaxCall - response.config.msBeforeAjaxCall;
if (timeTakenInMs > response.config.warningAfter) {
JL('Angular.Ajax').warn({ "timeTakenInMs": timeTakenInMs, config: response.config, data: response.data });
}
}
return response;
},
'responseError': function (rejection) {
var errorMessage = "timeout";
if (rejection && rejection.status && rejection.data) {
errorMessage = rejection.data.ExceptionMessage;
}
JL('Angular.Ajax').fatalException({ errorMessage: errorMessage, status: rejection.status, config: rejection.config }, rejection.data);
return $q.reject(rejection);
}
};
return myInterceptor;
}]);