| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- (function () {
- 'use strict';
- angular.module('ariaNg').factory('ariaNgLogService', ['$log', 'ariaNgConstants', function ($log, ariaNgConstants) {
- var logLevels = {
- DEBUG: 1,
- INFO: 2,
- WARN: 3,
- ERROR: 4
- };
- var logIndex = 0;
- var enableDebugLog = false;
- var cachedDebugLogs = [];
- var createNewCacheLogItem = function (msg, level, obj) {
- return {
- id: ++logIndex,
- time: new Date(),
- level: level,
- content: msg,
- attachment: obj
- };
- };
- var pushLogToCache = function (msg, level, obj) {
- if (!enableDebugLog) {
- return;
- }
- if (cachedDebugLogs.length >= ariaNgConstants.cachedDebugLogsLimit) {
- cachedDebugLogs.shift();
- }
- cachedDebugLogs.push(createNewCacheLogItem(msg, level, obj));
- };
- return {
- setEnableDebugLog: function (value) {
- enableDebugLog = value;
- },
- compareLogLevel: function (level1, level2) {
- var level1Val = logLevels[level1];
- var level2Val = logLevels[level2];
- if (!level1Val) {
- level1Val = 0;
- }
- if (!level2Val) {
- level2Val = 0;
- }
- if (level1Val > level2Val) {
- return 1;
- } else if (level1Val < level2Val) {
- return -1;
- } else {
- return 0;
- }
- },
- debug: function (msg, obj) {
- if (enableDebugLog) {
- 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 (enableDebugLog) {
- return cachedDebugLogs;
- } else {
- return [];
- }
- },
- clearDebugLogs: function () {
- logIndex = 0;
- cachedDebugLogs.length = 0;
- }
- };
- }]);
- }());
|