예제 #1
0
 /**
  * Logs exception events for AcmePhp commands.
  *
  * @param ConsoleExceptionEvent $event
  */
 public function onConsoleException(ConsoleExceptionEvent $event)
 {
     if (!$this->isAcmePhpCommand($event->getCommand())) {
         return;
     }
     $this->logger->error('Exception thrown while running command "{command}". Message: "{message}".', ['command' => $event->getCommand()->getName(), 'message' => $event->getException()->getMessage(), 'exception' => $event->getException()]);
 }
 public function onConsoleException(ConsoleExceptionEvent $event)
 {
     $command = $event->getCommand();
     $exception = $event->getException();
     $message = sprintf('%s: %s (uncaught exception) at %s line %s while running console command `%s`', get_class($exception), $exception->getMessage(), $exception->getFile(), $exception->getLine(), $command->getName());
     $this->logger->error($message, array('exception' => $exception));
 }
 /**
  * Method for handling the actual exceptions
  *
  * @param  \Symfony\Component\Console\Event\ConsoleExceptionEvent $event [description]
  */
 public function onConsoleException(ConsoleExceptionEvent $event)
 {
     $command = $event->getCommand();
     $exception = $event->getException();
     $this->client->notifyOnException($exception);
     error_log(sprintf("command:%s has thrown %s in: %s:%d", $command->getName(), $exception->getMessage(), $exception->getFile(), $exception->getLine()));
 }
 public function onConsoleException(ConsoleExceptionEvent $event)
 {
     $command = $event->getCommand();
     if (in_array($command->getName(), ['dz:notification:on_day_end'], TRUE)) {
         $exception = $event->getException();
         $message = sprintf('`%s` [uncaught exception]: command `%s` throws `%s` at `%s` line `%s`', get_class($exception), $command->getName(), $exception->getMessage(), $exception->getFile(), $exception->getLine());
         $this->logger->error($message, ['exception' => $exception]);
     }
 }
 /**
  * @param ConsoleExceptionEvent $event
  */
 public function onConsoleException(ConsoleExceptionEvent $event)
 {
     $command = $event->getCommand();
     $exception = $event->getException();
     // Log error with trace
     $trace = MAUTIC_ENV == 'dev' ? "\n[stack trace]\n" . $exception->getTraceAsString() : '';
     $message = sprintf('%s: %s (uncaught exception) at %s line %s while running console command `%s`%s', get_class($exception), $exception->getMessage(), $exception->getFile(), $exception->getLine(), $command->getName(), $trace);
     // Use notice so it makes it to the log all "perttified" (using error spits it out to console and not the log)
     $this->logger->notice($message);
 }
예제 #6
0
 /**
  * @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()));
 }
 /**
  * React to any console exceptions.
  *
  * @param ConsoleExceptionEvent    $event
  */
 public function onException(ConsoleExceptionEvent $event)
 {
     $exception = $event->getException();
     // Replace Guzzle connect exceptions with a friendlier message. This
     // also prevents the user from seeing two exceptions (one direct from
     // Guzzle, one from RingPHP).
     if ($exception instanceof ConnectException && strpos($exception->getMessage(), 'cURL error 6') !== false) {
         $request = $exception->getRequest();
         $event->setException(new ConnectionFailedException("Failed to connect to host: " . $request->getHost() . " \nPlease check your Internet connection.", $request));
         $event->stopPropagation();
     }
     // Handle Guzzle client exceptions, i.e. HTTP 4xx errors.
     if ($exception instanceof ClientException && ($response = $exception->getResponse())) {
         $request = $exception->getRequest();
         try {
             $response->getBody()->seek(0);
             $json = $response->json();
         } catch (ParseException $e) {
             $json = [];
         }
         // Create a friendlier message for the OAuth2 "Invalid refresh token"
         // error.
         if ($response->getStatusCode() === 400 && isset($json['error_description']) && $json['error_description'] === 'Invalid refresh token') {
             $event->setException(new LoginRequiredException("Invalid refresh token: please log in again.", $request));
             $event->stopPropagation();
         } elseif ($response->getStatusCode() === 401) {
             $event->setException(new LoginRequiredException("Unauthorized: please log in again.", $request));
             $event->stopPropagation();
         } elseif ($response->getStatusCode() === 403) {
             $event->setException(new PermissionDeniedException("Permission denied. Check your project or environment permissions.", $request));
             $event->stopPropagation();
         }
     }
     // When an environment is found to be in the wrong state, perhaps our
     // cache is old - we should invalidate it.
     if ($exception instanceof EnvironmentStateException) {
         $command = $event->getCommand();
         if ($command instanceof PlatformCommand) {
             $command->clearEnvironmentsCache();
         }
     }
 }
 public function onConsoleException(ConsoleExceptionEvent $event)
 {
     $command = $event->getCommand();
     $exception = $event->getException();
     $message = sprintf('%s: %s (uncaught exception) at %s line %s while running console command `%s`', get_class($exception), $exception->getMessage(), $exception->getFile(), $exception->getLine(), $command->getName());
     $this->logger->error($message, array('exception' => $exception));
     $this->logger->error('Exception trace:');
     // exception related properties
     $trace = $exception->getTrace();
     array_unshift($trace, array('function' => '', 'file' => $exception->getFile() !== null ? $exception->getFile() : 'n/a', 'line' => $exception->getLine() !== null ? $exception->getLine() : 'n/a', 'args' => array()));
     for ($i = 0, $count = count($trace); $i < $count; ++$i) {
         $class = isset($trace[$i]['class']) ? $trace[$i]['class'] : '';
         $type = isset($trace[$i]['type']) ? $trace[$i]['type'] : '';
         $function = $trace[$i]['function'];
         $file = isset($trace[$i]['file']) ? $trace[$i]['file'] : 'n/a';
         $line = isset($trace[$i]['line']) ? $trace[$i]['line'] : 'n/a';
         $this->logger->error(sprintf(' %s%s%s() at %s:%s', $class, $type, $function, $file, $line));
     }
     $this->logger->error('');
     $this->logger->error('');
 }
 /**
  * In case of an exception in scheduler console command
  * the message should be saved into the scheduler entity
  *
  * @param ConsoleExceptionEvent $event
  */
 public function onConsoleException(ConsoleExceptionEvent $event)
 {
     /** @var SchedulerCommand $command */
     $command = $event->getCommand();
     if ($command->getName() != 'campaignchain:scheduler') {
         return;
     }
     // if scheduler is null exception happened in early stage
     // maybe email should be sent
     if (!$command->getScheduler()) {
         return;
     }
     /** @var Scheduler $scheduler */
     $scheduler = $command->getScheduler();
     $scheduler->setMessage($event->getException()->getMessage());
     $scheduler->setStatus(Scheduler::STATUS_ERROR);
     $scheduler->setExecutionEnd(new \DateTime());
     $this->em->persist($scheduler);
     $this->em->flush();
     $command->getIo()->error($scheduler->getMessage());
     $this->logger->critical($scheduler->getMessage());
 }
예제 #10
0
 /**
  * @param \Symfony\Component\Console\Event\ConsoleExceptionEvent $event
  *
  * @return void
  */
 public function onConsoleException(ConsoleExceptionEvent $event)
 {
     $exception = $event->getException();
     $this->getLogger()->error(sprintf('CLI command "%s" exception, message "%s"', $event->getCommand()->getName(), $exception->getMessage()), ['exception' => $exception]);
 }
예제 #11
0
 /**
  * Fires when an exception throws on command execution scope ($command->run())
  *
  * @param ConsoleExceptionEvent $event ConsoleExceptionEvent instance
  *
  * @return void
  */
 public function onConsoleCommandException(ConsoleExceptionEvent $event)
 {
     $command = $event->getCommand();
     $container = $command->getApplication()->getContainer();
     $container['monolog']->addError(sprintf('Command \'%s\' ErrorMsg: \'%s\'', $command->getName(), $event->getException()->getMessage()));
 }