Files
dss.web/client/app/providers/logger/logger.service.js
Fergal Moran d2c529bafe Screw you git!
2015-12-01 19:50:20 +00:00

71 lines
2.3 KiB
JavaScript
Executable File

'use strict';
angular.module('dssWebApp')
.factory('logger', function ($log) {
var service = {
getLogFn: getLogFn,
log: log,
logError: logError,
logSuccess: logSuccess,
logWarning: logWarning
};
return service;
function getLogFn(moduleId, fnName) {
fnName = fnName || 'log';
switch (fnName.toLowerCase()) { // convert aliases
case 'success':
fnName = 'logSuccess';
break;
case 'error':
fnName = 'logError';
break;
case 'warn':
fnName = 'logWarning';
break;
case 'warning':
fnName = 'logWarning';
break;
}
var logFn = service[fnName] || service.log;
return function (msg, data, showToast) {
logFn(msg, data, moduleId, (showToast === undefined) ? true : showToast);
};
}
function log(message, data, source, showToast) {
logIt(message, data, source, showToast, 'info');
}
function logWarning(message, data, source, showToast) {
logIt(message, data, source, showToast, 'warning');
}
function logSuccess(message, data, source, showToast) {
logIt(message, data, source, showToast, 'success');
}
function logError(message, data, source, showToast) {
logIt(message, data, source, showToast, 'error');
}
function logIt(message, data, source, showToast, toastType) {
var write = (toastType === 'error') ? $log.error : $log.log;
source = source ? '[' + source + '] ' : '';
write(source, message, data);
if (showToast) {
if (toastType === 'error') {
toastr.error(message);
} else if (toastType === 'warning') {
toastr.warning(message);
} else if (toastType === 'success') {
toastr.success(message);
} else {
toastr.info(message);
}
}
}
});