/** * 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); }
/** * @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()); }
/** * @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]); }
/** * 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())); }