yii\log\Target::setLevels PHP Method

setLevels() public method

The parameter can be either an array of interested level names or an integer representing the bitmap of the interested level values. Valid level names include: 'error', 'warning', 'info', 'trace' and 'profile'; valid level values include: [[Logger::LEVEL_ERROR]], [[Logger::LEVEL_WARNING]], [[Logger::LEVEL_INFO]], [[Logger::LEVEL_TRACE]] and [[Logger::LEVEL_PROFILE]]. For example, php ['error', 'warning'] which is equivalent to: Logger::LEVEL_ERROR | Logger::LEVEL_WARNING
public setLevels ( array | integer $levels )
$levels array | integer message levels that this target is interested in.
    public function setLevels($levels)
    {
        static $levelMap = ['error' => Logger::LEVEL_ERROR, 'warning' => Logger::LEVEL_WARNING, 'info' => Logger::LEVEL_INFO, 'trace' => Logger::LEVEL_TRACE, 'profile' => Logger::LEVEL_PROFILE];
        if (is_array($levels)) {
            $this->_levels = 0;
            foreach ($levels as $level) {
                if (isset($levelMap[$level])) {
                    $this->_levels |= $levelMap[$level];
                } else {
                    throw new InvalidConfigException("Unrecognized level: {$level}");
                }
            }
        } else {
            $bitmapValues = array_reduce($levelMap, function ($carry, $item) {
                return $carry | $item;
            });
            if (!($bitmapValues & $levels) && $levels !== 0) {
                throw new InvalidConfigException("Incorrect {$levels} value");
            }
            $this->_levels = $levels;
        }
    }