collect = $collect; $this->collectContext = $collectContext; $this->filter = $filter; } /** * Set the "collect" flag * @param bool $collect * @return TestLogger $this */ public function setCollect( $collect ) { $this->collect = $collect; return $this; } /** * Set the collectContext flag * * @param bool $collectContext * @since 1.29 * @return TestLogger $this */ public function setCollectContext( $collectContext ) { $this->collectContext = $collectContext; return $this; } /** * Return the collected logs * @return array Array of [ string $level, string $message ], or * [ string $level, string $message, array $context ] if $collectContext was true. */ public function getBuffer() { return $this->buffer; } /** * Clear the collected log buffer */ public function clearBuffer() { $this->buffer = []; } public function log( $level, $message, array $context = [] ) { $message = trim( $message ); if ( $this->filter ) { $message = call_user_func( $this->filter, $message, $level, $context ); if ( $message === null ) { return; } } if ( $this->collect ) { if ( $this->collectContext ) { $this->buffer[] = [ $level, $message, $context ]; } else { $this->buffer[] = [ $level, $message ]; } } else { switch ( $level ) { case LogLevel::DEBUG: case LogLevel::INFO: case LogLevel::NOTICE: trigger_error( "LOG[$level]: $message", E_USER_NOTICE ); break; case LogLevel::WARNING: trigger_error( "LOG[$level]: $message", E_USER_WARNING ); break; case LogLevel::ERROR: case LogLevel::CRITICAL: case LogLevel::ALERT: case LogLevel::EMERGENCY: trigger_error( "LOG[$level]: $message", E_USER_ERROR ); break; } } } }