Метод dontReport
Метод dontReport применяется к объекту Exceptions
в классе Handler и позволяет исключить определённые
типы исключений из системы логирования. Первым параметром
передаётся имя класса исключения или массив классов исключений,
которые не нужно записывать в журнал ошибок.
Синтаксис
<?php
use IlluminateFoundationExceptionsHandler;
class Handler extends Handler
{
public function register()
{
$this->dontReport($exception);
}
}
?>
Пример
Давайте исключим из отчёта исключение типа NotFoundHttpException,
которое возникает при обращении к несуществующему маршруту:
<?php
namespace AppExceptions;
use IlluminateFoundationExceptionsHandler as BaseHandler;
use SymfonyComponentHttpKernelExceptionNotFoundHttpException;
class Handler extends BaseHandler
{
public function register()
{
$this->reportable(function ($e) {
//
});
$this->dontReport(NotFoundHttpException::class);
}
}
?>
Теперь при попытке перехода на несуществующий маршрут исключение не будет записано в файл логов, но пользователь всё равно увидит страницу с ошибкой 404.
Пример
Давайте исключим сразу несколько типов исключений с помощью массива классов:
<?php
namespace AppExceptions;
use IlluminateFoundationExceptionsHandler as BaseHandler;
use SymfonyComponentHttpKernelExceptionNotFoundHttpException;
use SymfonyComponentHttpKernelExceptionMethodNotAllowedHttpException;
use SymfonyComponentHttpKernelExceptionTooManyRequestsHttpException;
class Handler extends BaseHandler
{
public function register()
{
$this->reportable(function ($e) {
//
});
$this->dontReport([
NotFoundHttpException::class,
MethodNotAllowedHttpException::class,
TooManyRequestsHttpException::class,
]);
}
}
?>
Теперь исключения, связанные с недоступностью маршрута, неправильным методом запроса и превышением лимита запросов, не будут записываться в журнал ошибок.
Пример
Давайте исключим из отчёта модель, которая не была найдена в базе данных:
<?php
namespace AppExceptions;
use IlluminateFoundationExceptionsHandler as BaseHandler;
use IlluminateDatabaseEloquentModelNotFoundException;
class Handler extends BaseHandler
{
public function register()
{
$this->reportable(function ($e) {
//
});
$this->dontReport(ModelNotFoundException::class);
}
}
?>
Теперь при попытке получить несуществующую модель из базы данных, исключение не будет залогировано, но пользователь получит стандартную страницу с ошибкой 404.
Смотрите также
-
метод
report,
который используется для регистрации отчётов об исключениях -
метод
reportable,
который позволяет задать пользовательскую логику отчёта -
метод
shouldReport,
который определяет, нужно ли сообщать об исключении -
класс
Handler,
который является основным обработчиком исключений