Метод warning
Метод warning класса Log предназначен для записи сообщений с уровнем предупреждения. Он принимает строку сообщения в качестве первого параметра и массив дополнительных данных в качестве второго. Уровень warning обычно используется для информирования о неожиданных событиях, которые не являются критическими, но могут привести к проблемам в будущем.
Синтаксис
<?php
use Illuminate\Support\Facades\Log;
Log::warning($message, $context = []);
?>
Пример
Давайте запишем простое предупреждение о низком уровне остатка товара на складе:
<?php
use Illuminate\Support\Facades\Log;
Log::warning('Product stock is low: only 5 items left');
?>
Пример
Запишем предупреждение с дополнительным контекстом, например, с данными пользователя:
<?php
use Illuminate\Support\Facades\Log;
$userId = 1001;
$res = ['action' => 'login', 'ip' => '192.168.1.1'];
Log::warning('User login attempt from suspicious IP', [
'user_id' => $userId,
'context' => $res
]);
?>
Пример
Используем метод warning внутри контроллера для логирования предупреждения при возникновении исключительной ситуации:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use App\Models\Order;
class OrderController extends Controller
{
public function process(Request $request, $id)
{
try {
$order = Order::findOrFail($id);
if ($order->status === 'pending') {
Log::warning('Order processing started with pending status', [
'order_id' => $order->id,
'user_id' => $order->user_id
]);
}
return response()->json(['status' => 'success']);
} catch (\Exception $e) {
Log::warning('Order processing failed', [
'order_id' => $id,
'error' => $e->getMessage()
]);
return response()->json(['status' => 'error'], 500);
}
}
}
?>