Skip to content

Instantly share code, notes, and snippets.

@anvilation
Last active August 30, 2021 12:19
Show Gist options
  • Save anvilation/50a443c86a205112b0851b814c7efd7c to your computer and use it in GitHub Desktop.
Save anvilation/50a443c86a205112b0851b814c7efd7c to your computer and use it in GitHub Desktop.
Smart UI: Creating a Logger for a widget
define(function () {
var logger = {
mode: 'DEBUG',
appname:'Driver Lane Logger',
loglevel: 1,
config: function(mode, appname){
this.mode = mode;
this.appname = appname;
this.loglevel = this.logLevelNumber(this.mode) || 10;
},
debug: function(message){
switch (true) {
case this.loglevel === 1:
this.logit('DEBUG', message);
break;
}
},
log: function(message){
switch (true) {
case this.loglevel === 1:
this.logit('LOG', message);
break;
case this.loglevel === 2:
this.logit('LOG', message);
break;
}
},
error: function(message){
this.logit('ERROR', message);
},
logit: function(logmessagelevel, message){
var timestamp = new Date().toLocaleDateString();
if (logmessagelevel === 'DEBUG') {
console.log('%c' + timestamp + ' DEBUG: ' + this.appname + ' - ' + message, 'background-color: #e0005a ; color: #ffffff ; font-weight: bold ; padding: 4px ;');
}
if (logmessagelevel === 'INFO') {
console.log('%c' + timestamp + ' INFO: ' + this.appname + ' - ' + message, 'background-color: #e0005a ; color: #ffffff ; font-weight: bold ; padding: 4px ;');
}
if (logmessagelevel === 'LOG') {
console.log(timestamp + ' INFO: ' + this.appname + ' - ' + message);
}
if (logmessagelevel === 'ERROR') {
console.error('%c' + timestamp + ' ERROR: ' + this.appname + ' - ' + message, 'background-color: #ff0000 ; color: #ffffff ; font-weight: bold ; padding: 4px ;');
}
},
logLevelNumber: function (level) {
if (level === 'DEBUG') {
return 1;
}
if (level === 'INFO') {
return 2;
}
return 10;
}
};
return logger;
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment