yii\log\Target::filterMessages PHP 메소드

filterMessages() 공개 정적인 메소드

Filters the given messages according to their categories and levels.
public static filterMessages ( array $messages, integer $levels, array $categories = [], array $except = [] ) : array
$messages array messages to be filtered. The message structure follows that in [[Logger::messages]].
$levels integer the message levels to filter by. This is a bitmap of level values. Value 0 means allowing all levels.
$categories array the message categories to filter by. If empty, it means all categories are allowed.
$except array the message categories to exclude. If empty, it means all categories are allowed.
리턴 array the filtered messages.
    public static function filterMessages($messages, $levels = 0, $categories = [], $except = [])
    {
        foreach ($messages as $i => $message) {
            if ($levels && !($levels & $message[1])) {
                unset($messages[$i]);
                continue;
            }
            $matched = empty($categories);
            foreach ($categories as $category) {
                if ($message[2] === $category || !empty($category) && substr_compare($category, '*', -1, 1) === 0 && strpos($message[2], rtrim($category, '*')) === 0) {
                    $matched = true;
                    break;
                }
            }
            if ($matched) {
                foreach ($except as $category) {
                    $prefix = rtrim($category, '*');
                    if (($message[2] === $category || $prefix !== $category) && strpos($message[2], $prefix) === 0) {
                        $matched = false;
                        break;
                    }
                }
            }
            if (!$matched) {
                unset($messages[$i]);
            }
        }
        return $messages;
    }

Usage Example

예제 #1
0
 /**
  * Filter all exceptions. They're logged via ErrorHandler
  * @inheritdoc
  */
 public static function filterMessages($messages, $levels = 0, $categories = [], $except = [])
 {
     $messages = parent::filterMessages($messages, $levels, $categories, $except);
     foreach ($messages as $i => $message) {
         $type = explode(':', $message[2]);
         // shutdown function not working in yii2 yet: https://github.com/yiisoft/yii2/issues/6637
         // allow fatal errors exceptions in log messages
         if (is_array($type) && sizeof($type) == 2 && $type[0] == 'yii\\base\\ErrorException' && ErrorException::isFatalError(['type' => $type[1]])) {
             continue;
         }
         if (is_string($message[0]) && strpos($message[0], 'exception \'') === 0) {
             unset($messages[$i]);
         }
     }
     return $messages;
 }
All Usage Examples Of yii\log\Target::filterMessages