'use strict'; const _ = require('lodash'); class Base { constructor(logContext, component, allLevels, defaultLevel) { this._logContext = logContext; this._appContext = logContext._appContext; this._formatters = logContext._appContext._formatters; this._env = logContext._appContext._env; this._component = component; this._allLevels = allLevels; this._defaultLevel = defaultLevel; } getLevel() { if (this._env.topPrioLevel) { return this._env.topPrioLevel; } const levels = this._appContext._levels; return levels.get(this._component) || this._defaultLevel; } isEnabled(level) { if (this._env.loggingOff) { return false; } if (!_.isString(level)) { return false; } level = level.toLowerCase(); const iLevel = this._allLevels[level]; if (!_.isNumber(iLevel)) { return false; } const currentLevel = this.getLevel(); const iCurrentLevel = this._allLevels[currentLevel]; return (iCurrentLevel <= iLevel); } } module.exports = Base;