public function onConsoleException(ConsoleExceptionEvent $event) { $exception = $event->getException(); //This listener only wants to deal with this particular Exception if (!$exception instanceof \GoCardless\Enterprise\Exceptions\ApiException) { return; } $output = $event->getOutput(); $rawReasonPhrase = $exception->getReasonPhrase(); $data = json_decode($rawReasonPhrase, true); $exceptionName = get_class($exception); $gocardlessErrorMessage = isset($data['error']['message']) ? $data['error']['message'] : 'No Gocardless error available'; $fieldErrors = isset($data['error']['errors']) ? $data['error']['errors'] : array(); $output->writeln(""); $output->writeln("Exception: {$exceptionName}"); $output->writeln("---------"); $output->writeln("Gocardless error message: {$gocardlessErrorMessage}"); if ($fieldErrors) { $output->writeln(""); $output->writeln("Field Specific error messages"); } foreach ($fieldErrors as $error) { $output->writeln(""); foreach ($error as $k => $e) { $output->writeln("{$k}: {$e}"); } $output->writeln("-----------"); } $output->writeln("LOOK ABOVE FOR MORE INFORMATION ABOUT THIS EXCEPTION"); }
/** * @param ConsoleExceptionEvent $event */ public function onConsoleError(ConsoleExceptionEvent $event) { $exception = $event->getException(); $command = $event->getCommand(); $output = $event->getOutput(); $this->logger->error(sprintf("error while executing %s -> %s", $command->getName(), $exception->getMessage())); if ($this->config->get("common/debug")) { return; } $output->writeln(sprintf("error while executing %s -> %s", $command->getName(), $exception->getMessage())); }
/** * @param \Symfony\Component\Console\Event\ConsoleExceptionEvent $event */ public function onConsoleException(ConsoleExceptionEvent $event) { $this->campfire->notifyOnConsoleException($event->getInput(), $event->getOutput(), $event->getException(), $event->getExitCode()); }