This repository has been archived on 2022-01-02. You can view files and clone it, but cannot push or open issues or pull requests.
AriaNg/src/scripts/services/ariaNgLogService.js
2018-04-06 00:58:14 +08:00

77 lines
2.4 KiB
JavaScript

(function () {
'use strict';
angular.module('ariaNg').factory('ariaNgLogService', ['$log', 'moment', 'ariaNgConstants', 'ariaNgSettingService', function ($log, moment, ariaNgConstants, ariaNgSettingService) {
var cachedDebugLogs = [];
var createNewCacheLogItem = function (msg, level, obj) {
return {
time: moment(),
level: level,
content: msg,
attachment: obj
};
};
var pushLogToCache = function (msg, level, obj) {
if (!ariaNgSettingService.isEnableDebugMode()) {
return;
}
if (cachedDebugLogs.length >= ariaNgConstants.cachedDebugLogsLimit) {
cachedDebugLogs.shift();
}
cachedDebugLogs.push(createNewCacheLogItem(msg, level, obj));
};
return {
debug: function (msg, obj) {
if (ariaNgSettingService.isEnableDebugMode()) {
if (obj) {
$log.debug('[AriaNg Debug]' + msg, obj);
} else {
$log.debug('[AriaNg Debug]' + msg);
}
pushLogToCache(msg, 'DEBUG', obj);
}
},
info: function (msg, obj) {
if (obj) {
$log.info('[AriaNg Info]' + msg, obj);
} else {
$log.info('[AriaNg Info]' + msg);
}
pushLogToCache(msg, 'INFO', obj);
},
warn: function (msg, obj) {
if (obj) {
$log.warn('[AriaNg Warn]' + msg, obj);
} else {
$log.warn('[AriaNg Warn]' + msg);
}
pushLogToCache(msg, 'WARN', obj);
},
error: function (msg, obj) {
if (obj) {
$log.error('[AriaNg Error]' + msg, obj);
} else {
$log.error('[AriaNg Error]' + msg);
}
pushLogToCache(msg, 'ERROR', obj);
},
getDebugLogs: function () {
if (ariaNgSettingService.isEnableDebugMode()) {
return cachedDebugLogs;
} else {
return [];
}
}
};
}]);
}());