50 lines
1.3 KiB
JavaScript
50 lines
1.3 KiB
JavaScript
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
// Logger
|
||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
var LOGGER = (function () {
|
||
|
let LOG_LEVEL = 'info';
|
||
|
|
||
|
function fnDebug() {
|
||
|
if (LOG_LEVEL == 'debug') {
|
||
|
_log('DEBUG', arguments);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function fnInfo() {
|
||
|
if (LOG_LEVEL == 'debug' || LOG_LEVEL === 'info') {
|
||
|
_log('INFO', arguments);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function fnError() {
|
||
|
_log('ERROR', arguments);
|
||
|
}
|
||
|
|
||
|
function fnSetLevel(level) {
|
||
|
LOG_LEVEL = level;
|
||
|
}
|
||
|
|
||
|
// --------------------------------------- privates ----------------------------------------- //
|
||
|
|
||
|
function _log(level, args) {
|
||
|
// Prepends log level to things that will be logged
|
||
|
args = Array.prototype.slice.call(args);
|
||
|
args.unshift(`[${level}]`);
|
||
|
try {
|
||
|
console.log.apply(this, args);
|
||
|
} catch (e) {
|
||
|
// do nothing
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// ---------------------------------- expose publics here ------------------------------------ //
|
||
|
|
||
|
return {
|
||
|
debug: fnDebug,
|
||
|
info: fnInfo,
|
||
|
error: fnError,
|
||
|
setLevel: fnSetLevel,
|
||
|
};
|
||
|
})();
|