svelte-ux
Version:
- Increment version in `package.json` and commit as `Version bump to x.y.z` - `npm run publish`
56 lines (55 loc) • 2.27 kB
JavaScript
const logLevels = ['TRACE', 'DEBUG', 'INFO', 'WARN', 'ERROR'];
/**
* Enable:
* localStorage.logger = 'SelectField'
* localStorage.logger = 'SelectField:INFO'
* localStorage.logger = 'SelectField,Dialog'
* localStorage.logger = 'SelectField:INFO,Dialog'
*/
export default class Logger {
constructor(name) {
this.name = name;
}
trace(...message) {
this.log('TRACE', ...message);
}
debug(...message) {
this.log('DEBUG', ...message);
}
info(...message) {
this.log('INFO', ...message);
}
warn(...message) {
this.log('WARN', ...message);
}
error(...message) {
this.log('ERROR', ...message);
}
log(level, ...message) {
var _a, _b, _c;
const enabledLoggers = (_b = (_a = localStorage
.getItem('logger')) === null || _a === void 0 ? void 0 : _a.split(',').map((x) => x.split(':'))) !== null && _b !== void 0 ? _b : [];
const enabledLogger = enabledLoggers.find((x) => x[0] === this.name);
const shouldLog = enabledLogger != null &&
logLevels.indexOf(level) >= logLevels.indexOf((_c = enabledLogger[1]) !== null && _c !== void 0 ? _c : 'DEBUG');
if (shouldLog) {
switch (level) {
case 'TRACE':
console.trace(`%c${this.name} %c${level}`, 'color: hsl(200deg, 10%, 50%)', 'color: hsl(200deg, 40%, 50%)', ...message);
break;
case 'DEBUG':
console.log(`%c${this.name} %c${level}`, 'color: hsl(200deg, 10%, 50%)', 'color: hsl(200deg, 40%, 50%)', ...message);
break;
case 'INFO':
console.log(`%c${this.name} %c${level}`, 'color: hsl(200deg, 10%, 50%)', 'color: hsl(60deg, 100%, 50%)', ...message);
break;
case 'WARN':
console.warn(`%c${this.name} %c${level}`, 'color: hsl(200deg, 10%, 50%)', 'color: hsl(30deg, 100%, 50%)', ...message);
break;
case 'ERROR':
console.warn(`%c${this.name} %c${level}`, 'color: hsl(200deg, 10%, 50%)', 'color: hsl(0deg, 100%, 50%)', ...message);
break;
}
}
}
}