2016-11-06 15:41:28 +01:00
|
|
|
(function () {
|
|
|
|
'use strict';
|
|
|
|
|
2018-08-12 10:22:59 +02:00
|
|
|
angular.module('ariaNg').factory('ariaNgLogService', ['$log', 'moment', 'ariaNgConstants', function ($log, moment, ariaNgConstants) {
|
|
|
|
var enableDebugLog = false;
|
2018-04-05 18:58:14 +02:00
|
|
|
var cachedDebugLogs = [];
|
|
|
|
|
|
|
|
var createNewCacheLogItem = function (msg, level, obj) {
|
|
|
|
return {
|
|
|
|
time: moment(),
|
|
|
|
level: level,
|
|
|
|
content: msg,
|
|
|
|
attachment: obj
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
var pushLogToCache = function (msg, level, obj) {
|
2018-08-12 10:22:59 +02:00
|
|
|
if (!enableDebugLog) {
|
2018-04-05 18:58:14 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (cachedDebugLogs.length >= ariaNgConstants.cachedDebugLogsLimit) {
|
|
|
|
cachedDebugLogs.shift();
|
|
|
|
}
|
|
|
|
|
|
|
|
cachedDebugLogs.push(createNewCacheLogItem(msg, level, obj));
|
|
|
|
};
|
|
|
|
|
2016-11-06 15:41:28 +01:00
|
|
|
return {
|
2018-08-12 10:22:59 +02:00
|
|
|
setEnableDebugLog: function (value) {
|
|
|
|
enableDebugLog = value;
|
|
|
|
},
|
2016-11-06 15:41:28 +01:00
|
|
|
debug: function (msg, obj) {
|
2018-08-12 10:22:59 +02:00
|
|
|
if (enableDebugLog) {
|
2017-03-20 15:43:55 +01:00
|
|
|
if (obj) {
|
|
|
|
$log.debug('[AriaNg Debug]' + msg, obj);
|
|
|
|
} else {
|
|
|
|
$log.debug('[AriaNg Debug]' + msg);
|
|
|
|
}
|
2018-04-05 18:58:14 +02:00
|
|
|
|
|
|
|
pushLogToCache(msg, 'DEBUG', obj);
|
2016-11-06 15:41:28 +01:00
|
|
|
}
|
|
|
|
},
|
|
|
|
info: function (msg, obj) {
|
2017-03-20 15:43:55 +01:00
|
|
|
if (obj) {
|
|
|
|
$log.info('[AriaNg Info]' + msg, obj);
|
|
|
|
} else {
|
|
|
|
$log.info('[AriaNg Info]' + msg);
|
|
|
|
}
|
2018-04-05 18:58:14 +02:00
|
|
|
|
|
|
|
pushLogToCache(msg, 'INFO', obj);
|
2016-11-06 15:41:28 +01:00
|
|
|
},
|
|
|
|
warn: function (msg, obj) {
|
2017-03-20 15:43:55 +01:00
|
|
|
if (obj) {
|
|
|
|
$log.warn('[AriaNg Warn]' + msg, obj);
|
|
|
|
} else {
|
|
|
|
$log.warn('[AriaNg Warn]' + msg);
|
|
|
|
}
|
2018-04-05 18:58:14 +02:00
|
|
|
|
|
|
|
pushLogToCache(msg, 'WARN', obj);
|
2016-11-06 15:41:28 +01:00
|
|
|
},
|
|
|
|
error: function (msg, obj) {
|
2017-03-20 15:43:55 +01:00
|
|
|
if (obj) {
|
|
|
|
$log.error('[AriaNg Error]' + msg, obj);
|
|
|
|
} else {
|
|
|
|
$log.error('[AriaNg Error]' + msg);
|
|
|
|
}
|
2018-04-05 18:58:14 +02:00
|
|
|
|
|
|
|
pushLogToCache(msg, 'ERROR', obj);
|
|
|
|
},
|
|
|
|
getDebugLogs: function () {
|
2018-08-12 10:22:59 +02:00
|
|
|
if (enableDebugLog) {
|
2018-04-05 18:58:14 +02:00
|
|
|
return cachedDebugLogs;
|
|
|
|
} else {
|
|
|
|
return [];
|
|
|
|
}
|
2016-11-06 15:41:28 +01:00
|
|
|
}
|
|
|
|
};
|
|
|
|
}]);
|
|
|
|
}());
|