Laravel уведомление по электронной почте обо всех исключениях - PullRequest
0 голосов
/ 26 сентября 2018

Я занимаюсь разработкой проекта, и я хотел бы иметь систему уведомлений специально для «первых дней жизни» - чтобы получать электронные письма каждый раз, когда выдается исключение.

Я прочитал это статья и реализована, что там написано.Моя проблема в том, что функция report() в App\Exception\Handler.php не срабатывает, если в одном из моих контроллеров возникает исключение.

Моя проблема: У меня есть AdminController и функциякоторый вставляет некоторые данные в базу данных.Запросы находятся внутри try / catch:

try {
    // commands
} catch (\Exception $e){
    Log::channel('admin_submissions')->info("Could not save submission. " . $e->getMessage());
    return Redirect::back()->withErrors(['Could not save submission. Try again!']);
}

Для целей тестирования я вставил в try{} ошибку, которая будет выдана, как:

try {

    $error = \Illuminate\Validation\ValidationException::withMessages([
                'field_name_1' => ['Validation Message #1'],
                'field_name_2' => ['Validation Message #2'],
            ]);
    throw $error;

    // commands

Но dd("trigger") функция (смотри ниже) не срабатывает.

Как сделать так, чтобы при каждом исключении (везде) отправлялось электронное письмо?

App \ Exceptions \ Handler.php

Я изменил функцию отчета, чтобы проверить, действительно ли исключение проходит через эту функцию:

 public function report(Exception $exception)
    {
        dd("trigger");

        if ($this->shouldReport($exception)) {
            app('sneaker')->captureException($exception);
        }

        parent::report($exception);
    }

1 Ответ

0 голосов
/ 26 сентября 2018

Прежде всего, вы должны знать, какое исключение выдается вашим приложением, может быть исключение, которое выдается в $dontReport. Если это так, вы должны сначала удалить все исключения из этой таблицы, поскольку вы получите отчет для этого исключения * 1002.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...