*/ protected $events = []; /** * Logs with an arbitrary level. * * @param mixed $level Level. * @param string $message Message. * @param array $context Context. * * @return void */ public function log( $level, $message, array $context = array() ) { // Note: can not use parameter types here. $this->events[] = compact( 'level', 'message', 'context' ); } /** * Return events details. Clean events log. * * @return array */ public function get_events() : array { $data = $this->events; $this->events = []; return $data; } }