-
Notifications
You must be signed in to change notification settings - Fork 0
/
logger.appenders.service.js
56 lines (42 loc) · 1.63 KB
/
logger.appenders.service.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
if (typeof (app) === 'undefined' || app === null) {
throw new Error("global object 'app' is required");
}
if (!app.logger) {
throw new Error("app object 'logger' is required");
}
if (typeof ($) === 'undefined') {
throw new Error("global object '$' (jQuery) is required");
}
if (typeof ($.cookie) === 'undefined') {
throw new Error("the jQuery cookie plugin is required");
}
window.app.logger.addAppender(
(function (app) {
var log = function (category, logLevel, message) {
if (isLogLevelEnabled(logLevel) || isUserEnabled()) {
if (!app.config.serviceAppender.logServiceUrl) {
throw new Error("The log service URL must be configured");
}
var fullLogServiceUrl = app.config.serviceAppender.logServiceUrl;
var logData = { 'category': category, 'logLevel': logLevel, 'message': message };
$.post(fullLogServiceUrl, logData).error(function () {
return true;
});
}
},
isLogLevelEnabled = function (logLevel) {
var isEnabled = false;
if (typeof (app.config.serviceAppender) !== 'undefined') {
isEnabled = app.config.serviceAppender['is' + logLevel + 'Enabled'] === true;
}
return isEnabled;
},
isUserEnabled = function () {
return typeof (app.config.serviceAppender.allowServiceLoggingByCookie) !== 'undefined' &&
app.config.serviceAppender.allowServiceLoggingByCookie === true &&
$.cookie("enableServiceLogging") === "true";
};
return {
log: log
};
})(window.app));