electron-log
Version:
Just a simple logging module for your Electron application
32 lines (27 loc) • 854 B
JavaScript
;
module.exports = scopeFactory;
function scopeFactory(logger) {
return Object.defineProperties(scope, {
defaultLabel: { value: '', writable: true },
labelPadding: { value: true, writable: true },
maxLabelLength: { value: 0, writable: true },
labelLength: {
get() {
switch (typeof scope.labelPadding) {
case 'boolean': return scope.labelPadding ? scope.maxLabelLength : 0;
case 'number': return scope.labelPadding;
default: return 0;
}
},
},
});
function scope(label) {
scope.maxLabelLength = Math.max(scope.maxLabelLength, label.length);
const newScope = {};
for (const level of logger.levels) {
newScope[level] = (...d) => logger.logData(d, { level, scope: label });
}
newScope.log = newScope.info;
return newScope;
}
}