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

Класс Log

Класс Log в Laravel является фасадом для монитора логов и предоставляет удобный API для записи сообщений разных уровней. Он поддерживает множество драйверов, включая однофайловый, ежедневный, syslog, stderr и другие. Основные уровни логирования: emergency, alert, critical, error, warning, notice, info и debug. Класс позволяет легко переключаться между каналами и создавать стек каналов для гибкой настройки логирования.

Синтаксис

<?php Log::info($message, $context); Log::error($message, $context); Log::warning($message, $context); Log::debug($message, $context); ?>

Пример

Давайте запишем информационное сообщение с указанием контекстных данных:

<?php namespace AppHttpControllers; use IlluminateSupportFacadesLog; use AppModelsArticle; class ArticleController extends Controller { public function index() { $articles = Article::all(); $res = $articles->count(); Log::info('Articles loaded', ['count' => $res]); return view('articles.index', ['articles' => $articles]); } } ?>

Пример

Запишем сообщение об ошибке с передачей исключения:

<?php namespace AppHttpControllers; use IlluminateSupportFacadesLog; use Exception; class UserController extends Controller { public function show($id) { try { $user = User::findOrFail($id); return view('users.show', ['user' => $user]); } catch (Exception $e) { Log::error('User not found', [ 'id' => $id, 'exception' => $e->getMessage() ]); return redirect()->route('users.index'); } } } ?>

Пример

Используем разные уровни логирования для различных ситуаций:

<?php namespace AppHttpControllers; use IlluminateSupportFacadesLog; use AppModelsOrder; class OrderController extends Controller { public function process($id) { Log::debug('Starting order processing', ['order_id' => $id]); $order = Order::find($id); if (!$order) { Log::warning('Order not found', ['order_id' => $id]); return response()->json(['error' => 'Order not found'], 404); } if ($order->status === 'cancelled') { Log::notice('Attempt to process cancelled order', [ 'order_id' => $id, 'status' => $order->status ]); return response()->json(['error' => 'Order is cancelled'], 400); } $order->status = 'processing'; $order->save(); Log::info('Order processed successfully', ['order_id' => $id]); return response()->json(['success' => true]); } } ?>

Пример

Используем метод channel для записи в определенный канал:

<?php namespace AppHttpControllers; use IlluminateSupportFacadesLog; use IlluminateHttpRequest; class ApiController extends Controller { public function store(Request $request) { $data = $request->all(); Log::channel('api')->info('API request received', ['data' => $data]); // Обработка данных $res = ['status' => 'success', 'message' => 'Data processed']; Log::channel('api')->debug('API response sent', ['response' => $res]); return response()->json($res); } } ?>

Пример

Создаем стек каналов с помощью метода stack:

<?php namespace AppHttpControllers; use IlluminateSupportFacadesLog; use AppModelsReport; class ReportController extends Controller { public function generate($id) { Log::stack(['daily', 'slack'])->info('Generating report', ['report_id' => $id]); $report = Report::find($id); if (!$report) { Log::stack(['daily', 'slack'])->error('Report not found', ['report_id' => $id]); return response()->json(['error' => 'Report not found'], 404); } $res = $report->generate(); Log::stack(['daily', 'slack'])->info('Report generated', ['report_id' => $id, 'size' => strlen($res)]); return response()->json(['data' => $res]); } } ?>

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

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