РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
947 of 1392 menu

Функция report

Функция report предназначена для регистрации исключений и ошибок в лог-файлах приложения. Она принимает на вход экземпляр исключения, строку с сообщением об ошибке или другие данные, которые необходимо записать в лог. По умолчанию функция записывает информацию в канал логирования, указанный в конфигурации приложения.

Функция особенно полезна в пользовательском коде, когда нужно залогировать ошибку без остановки выполнения программы. В отличие от метода Log, функция report может принимать любые типы данных и автоматически обрабатывает их преобразование в строковое представление.

Синтаксис

<?php report($exception); report($message, $context); report_if($condition, $exception); ?>

Параметры функции:

  • $exception - экземпляр исключения или строка с сообщением об ошибке
  • $message - строковое сообщение для логирования
  • $context - массив дополнительных данных для логирования

Пример

Давайте залогируем исключение в обработчике ошибок:

<?php namespace App\Http\Controllers; use App\Models\User; use Exception; class UserController extends Controller { public function show($id) { try { $user = User::findOrFail($id); return response()->json($user); } catch (Exception $e) { report($e); return response()->json(['error' => 'User not found'], 404); } } } ?>

В этом примере при возникновении исключения оно будет записано в лог, а пользователь получит сообщение об ошибке.

Пример

Давайте залогируем текстовое сообщение с дополнительными данными:

<?php namespace App\Http\Controllers; use App\Models\Order; use Illuminate\Http\Request; class OrderController extends Controller { public function store(Request $request) { $order = new Order(); $order->user_id = $request->user_id; $order->total = $request->total; if ($order->total < 0) { report('Invalid order total: ' . $order->total, [ 'user_id' => $order->user_id, 'total' => $order->total ]); return response()->json(['error' => 'Invalid order total'], 400); } $order->save(); return response()->json($order, 201); } } ?>

Результат выполнения кода:

"Invalid order total: -10.00"

Сообщение будет записано в лог вместе с контекстными данными для последующего анализа.

Пример

Давайте используем функцию report⁅/⁆ для логирования ошибок в фоновых задачах:

<?php namespace App\Jobs; use App\Models\User; use Exception; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Facades\Mail; class SendWelcomeEmail implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; protected $user; public function __construct(User $user) { $this->user = $user; } public function handle() { try { Mail::to($this->user->email)->send(new WelcomeEmail($this->user)); } catch (Exception $e) { report($e); $this->fail($e); } } } ?>

Логирование ошибок в очередях позволяет отслеживать проблемы с отправкой писем без прерывания выполнения других задач.

Пример

Давайте залогируем ошибку с использованием условной функции report_if⁅/⁆:

<?php namespace App\Http\Controllers; use App\Models\Product; use Exception; use Illuminate\Http\Request; class ProductController extends Controller { public function update(Request $request, $id) { $product = Product::find($id); if (!$product) { report_if(true, new Exception('Product not found: ' . $id)); return response()->json(['error' => 'Product not found'], 404); } $product->update($request->all()); return response()->json($product); } } ?>

Функция report_if⁅/⁆ принимает условие в качестве первого параметра и исключение в качестве второго. Исключение будет залогировано только если условие выполняется.

Смотрите также

  • функция logger,
    которая возвращает экземпляр логгера для записи сообщений
  • класс Log,
    который предоставляет фасад для работы с логгером
  • метод error,
    который записывает сообщение об ошибке в лог
  • функция rescue,
    которая выполняет замыкание и логирует возможные исключения
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить