smyld-lib-common
Version:
SMYLD Javascript Core Library, contains several core APIs that benefit the developers working on SPA applications
43 lines • 1.65 kB
JavaScript
import { LogRuleImpl, RuleCondition } from "./config/LogRule";
export class LogConfiguration {
_rules = [];
addRule(condition, value, level) {
this._rules.push(new LogRuleImpl(condition, value, level));
}
get rules() {
return this._rules;
}
detectLogLevel(logger) {
for (const curRule of [...this._rules].reverse()) {
switch (curRule.condition) {
case RuleCondition.startsWith:
if (typeof curRule.value === 'string' && logger.source.startsWith(curRule.value)) {
return curRule.level;
}
break;
case RuleCondition.contains:
if (typeof curRule.value === 'string' && logger.source.includes(curRule.value)) {
return curRule.level;
}
break;
case RuleCondition.regex:
if ((curRule.value instanceof RegExp) && curRule.value.test(logger.source)) {
return curRule.level;
}
else if (typeof curRule.value === 'string') {
// Convert string to RegExp if needed
const regex = new RegExp(curRule.value);
if (regex.test(logger.source)) {
return curRule.level;
}
}
break;
}
}
return logger.logLevel;
}
clearConfigurations() {
this._rules = [];
}
}
//# sourceMappingURL=LogConfiguration.js.map