/
errorreporter.js
51 lines (44 loc) · 1.36 KB
/
errorreporter.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
import Utils from './utils';
import Platform from 'platform';
import Defaults from '../util/defaults';
import Logger from './logger';
import Http from 'platform-http';
var ErrorReporter = (function() {
function ErrorReporter() {}
var levels = ErrorReporter.levels = [
'fatal',
'error',
'warning',
'info',
'debug'
];
/* (level: typeof ErrorReporter.levels[number], message: string, fingerprint?: string, tags?: {[key: string]: string}): void */
ErrorReporter.report = function(level, message, fingerprint, tags) {
var eventId = Utils.randomHexString(16);
var event = {
event_id: eventId,
tags: Utils.mixin({
lib: Platform.libver
}, tags),
platform: 'javascript',
level: level,
release: Defaults.version,
fingerprint: fingerprint && [ fingerprint ],
message: message,
request: {
headers: {
'User-Agent': Platform.userAgent
},
url: Platform.currentUrl
}
};
Logger.logAction(Logger.LOG_MICRO, 'ErrorReporter', 'POSTing to error reporter: ' + message);
Http.postUri(null, Defaults.errorReportingUrl, Defaults.errorReportingHeaders, JSON.stringify(event), {}, function(err, res) {
Logger.logAction(Logger.LOG_MICRO, 'ErrorReporter', 'POSTing to error reporter resulted in: ' +
(err ? Utils.inspectError(err) : Utils.inspectBody(res))
);
});
};
return ErrorReporter;
})();
export default ErrorReporter;