/** * @see Application::log() * * @observable "application:log:invoke"( string $level, string $message, array $context ) * @observable "application:log:except"( Throwable $e ) */ public function log(string $level, string $message, array $context = []) { $this->notify('application:log:invoke', $level, $message, $context); try { if (isset($this->_logger)) { $this->_logger->log($level, $message, $context); return; } $d = Vars::debug($context); error_log("{$level}: {$message}\n{$d}\n"); } catch (\Throwable $e) { $this->notify('application:log:except', $e); throw $e; } }