@@ -18,9 +18,9 @@ var loggingModule = angular.module('talis.services.logging', []);
18
18
* methods in the global context is not the 'angular way'
19
19
*/
20
20
loggingModule . factory (
21
- " stacktraceService" ,
22
- function ( ) {
23
- return ( {
21
+ ' stacktraceService' ,
22
+ function ( ) {
23
+ return ( {
24
24
print : printStackTrace
25
25
} ) ;
26
26
}
@@ -29,23 +29,21 @@ loggingModule.factory(
29
29
/**
30
30
* Override Angular's built in exception handler, and tell it to use our new exceptionLoggingService
31
31
*/
32
- loggingModule . provider (
33
- "$exceptionHandler" , {
34
- $get : function ( exceptionLoggingService ) {
35
- return ( exceptionLoggingService ) ;
36
- }
32
+ loggingModule . provider ( '$exceptionHandler' , {
33
+ $get : function ( exceptionLoggingService ) {
34
+ return ( exceptionLoggingService ) ;
37
35
}
38
- ) ;
36
+ } ) ;
39
37
40
38
/**
41
39
* Exception Logging Service, currently only used by the $exceptionHandler but logs to the console and uses the
42
40
* stacktraceService to generate a browser independent stacktrace which is POSTed to server side clientlogging
43
41
* service.
44
42
*/
45
43
loggingModule . factory (
46
- " exceptionLoggingService" ,
47
- [ " $log" , " $window" , " stacktraceService" , " LOGGING_CONFIG" , function ( $log , $window , stacktraceService , LOGGING_CONFIG ) {
48
- function error ( exception , cause ) {
44
+ ' exceptionLoggingService' ,
45
+ [ ' $log' , ' $window' , ' stacktraceService' , ' LOGGING_CONFIG' , function ( $log , $window , stacktraceService , LOGGING_CONFIG ) {
46
+ function error ( exception , cause ) {
49
47
if ( LOGGING_CONFIG . LOGGING_TYPE !== 'none' ) {
50
48
// preserve default behaviour i.e. dump to browser console
51
49
$log . error . apply ( $log , arguments ) ;
@@ -56,29 +54,29 @@ loggingModule.factory(
56
54
// now log server side.
57
55
try {
58
56
var errorMessage = exception . toString ( ) ;
59
- var stackTrace = stacktraceService . print ( { e : exception } ) ;
57
+ var stackTrace = stacktraceService . print ( { e : exception } ) ;
60
58
61
59
// use AJAX not an angular service because if something has gone wrong
62
60
// angular might be fubar'd
63
61
$ . ajax ( {
64
- type : " POST" ,
62
+ type : ' POST' ,
65
63
url : LOGGING_CONFIG . REMOTE_LOGGING_ENDPOINT ,
66
- contentType : " application/json" ,
64
+ contentType : ' application/json' ,
67
65
data : angular . toJson ( {
68
66
url : $window . location . href ,
69
67
message : errorMessage ,
70
- type : " exception" ,
68
+ type : ' exception' ,
71
69
stackTrace : stackTrace ,
72
- cause : ( cause || "" )
70
+ cause : ( cause || '' )
73
71
} )
74
72
} ) ;
75
73
} catch ( loggingError ) {
76
- $log . warn ( " Error logging failed" ) ;
74
+ $log . warn ( ' Error logging failed' ) ;
77
75
$log . log ( loggingError ) ;
78
76
}
79
77
}
80
78
}
81
- return ( error ) ;
79
+ return ( error ) ;
82
80
} ]
83
81
) ;
84
82
@@ -88,8 +86,8 @@ loggingModule.factory(
88
86
* server specifically eg: $http.get().error( function(){ call applicationloggingservice here })
89
87
*/
90
88
loggingModule . factory (
91
- " applicationLoggingService" ,
92
- [ " $log" , " $window" , " LOGGING_CONFIG" , function ( $log , $window , LOGGING_CONFIG ) {
89
+ ' applicationLoggingService' ,
90
+ [ ' $log' , ' $window' , ' LOGGING_CONFIG' , function ( $log , $window , LOGGING_CONFIG ) {
93
91
var arrLoggingLevels = [ 'trace' , 'debug' , 'info' , 'warn' , 'error' ] ;
94
92
var loggingThreshold = LOGGING_CONFIG . LOGGING_THRESHOLD || 'info' ;
95
93
var iLoggingThreshold = arrLoggingLevels . indexOf ( loggingThreshold ) ;
@@ -106,17 +104,17 @@ loggingModule.factory(
106
104
*/
107
105
var defaultData = null ;
108
106
109
- var isLoggingEnabledForSeverity = function ( severity ) {
107
+ var isLoggingEnabledForSeverity = function ( severity ) {
110
108
var iRequestedLevel = arrLoggingLevels . indexOf ( severity ) ;
111
109
if ( iRequestedLevel === - 1 ) {
112
110
// Invalid level requested
113
111
return false ;
114
112
}
115
113
116
114
return ( iRequestedLevel >= iLoggingThreshold ) ;
117
- }
115
+ } ;
118
116
119
- var log = function ( severity , message , desc ) {
117
+ var log = function ( severity , message , desc ) {
120
118
if ( ! isLoggingEnabledForSeverity ( severity ) ) {
121
119
return ;
122
120
}
@@ -130,6 +128,7 @@ loggingModule.factory(
130
128
}
131
129
132
130
if ( desc ) {
131
+ desc = JSON . stringify ( desc ) ;
133
132
$log [ angularLogSeverity ] ( message , desc ) ;
134
133
} else {
135
134
$log [ angularLogSeverity ] ( message ) ;
@@ -139,39 +138,44 @@ loggingModule.factory(
139
138
// check if the config says we should log to the remote, and also if a remote endpoint was specified
140
139
if ( LOGGING_CONFIG . LOGGING_TYPE === 'remote' && LOGGING_CONFIG . REMOTE_LOGGING_ENDPOINT ) {
141
140
// send server side
141
+ var data = {
142
+ type : severity ,
143
+ message : message ,
144
+ url : $window . location . href ,
145
+ overrideLoggingThreshold : overrideLoggingThreshold
146
+ } ;
147
+ if ( desc ) {
148
+ data . desc = desc ;
149
+ }
150
+ if ( defaultData ) {
151
+ data . defaultData = defaultData ;
152
+ }
142
153
$ . ajax ( {
143
- type : " POST" ,
154
+ type : ' POST' ,
144
155
url : LOGGING_CONFIG . REMOTE_LOGGING_ENDPOINT ,
145
- contentType : "application/json" ,
146
- data : angular . toJson ( {
147
- type : severity ,
148
- url : $window . location . href ,
149
- message : message ,
150
- desc : desc ,
151
- defaultData : defaultData ,
152
- overrideLoggingThreshold : overrideLoggingThreshold
153
- } )
156
+ contentType : 'application/json' ,
157
+ data : angular . toJson ( data )
154
158
} ) ;
155
159
}
156
160
} ;
157
161
158
- return ( {
159
- trace : function ( message , desc ) {
162
+ return ( {
163
+ trace : function ( message , desc ) {
160
164
log ( 'trace' , message , desc ) ;
161
165
} ,
162
- debug : function ( message , desc ) {
166
+ debug : function ( message , desc ) {
163
167
log ( 'debug' , message , desc ) ;
164
168
} ,
165
- info : function ( message , desc ) {
169
+ info : function ( message , desc ) {
166
170
log ( 'info' , message , desc ) ;
167
171
} ,
168
- warn : function ( message , desc ) {
172
+ warn : function ( message , desc ) {
169
173
log ( 'warn' , message , desc ) ;
170
174
} ,
171
- error : function ( message , desc ) {
175
+ error : function ( message , desc ) {
172
176
log ( 'error' , message , desc ) ;
173
177
} ,
174
- setLoggingThreshold : function ( level ) {
178
+ setLoggingThreshold : function ( level ) {
175
179
/*
176
180
* Normally the logger would use the logging threshold passed in on the config hash but an
177
181
* application may want to override this dynamically, e.g. to enable a different logging
@@ -182,18 +186,18 @@ loggingModule.factory(
182
186
overrideLoggingThreshold = true ;
183
187
}
184
188
} ,
185
- setDefaultData : function ( data ) {
189
+ setDefaultData : function ( data ) {
186
190
defaultData = data ;
187
191
}
188
192
} ) ;
189
193
} ]
190
194
) ;
191
195
192
196
loggingModule . factory (
193
- " userErrorReport" ,
194
- [ '$window' , '$rootScope' , 'LOGGING_CONFIG' , function ( $window , $rootScope , LOGGING_CONFIG ) {
195
- return ( {
196
- send : function ( userMessage , error ) {
197
+ ' userErrorReport' ,
198
+ [ '$window' , '$rootScope' , 'LOGGING_CONFIG' , function ( $window , $rootScope , LOGGING_CONFIG ) {
199
+ return ( {
200
+ send : function ( userMessage , error ) {
197
201
var payload = {
198
202
url : $window . location . href ,
199
203
systemError : error ,
@@ -204,9 +208,9 @@ loggingModule.factory(
204
208
// check if the config says we should log to the remote, and also if a remote endpoint was specified
205
209
if ( LOGGING_CONFIG . LOGGING_TYPE === 'remote' && LOGGING_CONFIG . REMOTE_ERROR_REPORT_ENDPOINT ) {
206
210
$ . ajax ( {
207
- type : " POST" ,
211
+ type : ' POST' ,
208
212
url : LOGGING_CONFIG . REMOTE_ERROR_REPORT_ENDPOINT ,
209
- contentType : " application/json" ,
213
+ contentType : ' application/json' ,
210
214
data : angular . toJson ( payload )
211
215
} ) ;
212
216
}
0 commit comments