Laravel - Lỗi và Ghi Nhật ký

Xin chào, các bạn đang theo đuổi nghề lập trình! Hôm nay, chúng ta sẽ cùng khám phá thế giới của lỗi và ghi nhật ký trong Laravel. Đừng lo lắng nếu bạn mới bắt đầu học lập trình - tôi sẽ hướng dẫn bạn từng bước, giống như tôi đã làm cho hàng trăm sinh viên trong những năm qua. Hãy cùng bắt đầu hành trình thú vị này nhé!

Laravel - Errors & Logging

Lỗi

Hiểu về Lỗi trong Laravel

Lỗi là một phần không thể tránh khỏi của lập trình. Chúng giống như những chướng ngại vật nhỏ trên con đường tạo ra các ứng dụng tuyệt vời. Nhưng đừng sợ! Laravel cung cấp cho chúng ta những công cụ mạnh mẽ để xử lý những chướng ngại vật này một cách mượt mà.

Loại Lỗi

Trong Laravel, chúng ta thường gặp ba loại lỗi chính:

1.EXCEPTIONS 2. LỖI HTTP 3. LỖI PHP

Hãy cùng nhìn vào từng loại này chi tiết.

Exceptions

Exceptions là những đối tượng đặc biệt đại diện cho lỗi trong mã của bạn. Hãy nghĩ về chúng như những lá cờ đỏ xuất hiện khi có điều gì đó sai sót.

Dưới đây là một ví dụ đơn giản về cách ném một exception:

if ($user->age < 18) {
throw new Exception('Bạn phải từ 18 tuổi trở lên để truy cập trang này.');
}

Trong đoạn mã này, nếu tuổi của người dùng nhỏ hơn 18, chúng ta sẽ ném một exception với một thông báo tùy chỉnh. Điều này giống như đặt một biển "Cấm vào" cho người dùng dưới tuổi!

LỖI HTTP

Lỗi HTTP đặc trưng cho các ứng dụng web. Chúng là những lỗi bạn thấy khi một trang web không thể tải đúng cách. Laravel làm cho việc xử lý những lỗi này trở nên dễ dàng.

Ví dụ, để tạo một trang lỗi tùy chỉnh 404 (Not Found):

  1. Tạo một tệp có tên 404.blade.php trong thư mục resources/views/errors.
  2. Thêm HTML tùy chỉnh vào tệp này:
<h1>Úi! Trang không tìm thấy</h1>
<p>Xin lỗi, trang bạn đang tìm kiếm không tồn tại.</p>

Bây giờ, mỗi khi một lỗi 404 xảy ra, Laravel sẽ tự động hiển thị trang này. Điều này giống như tạo một khu vực "Mất và Tìm" thân thiện cho người truy cập website của bạn!

LỖI PHP

Lỗi PHP là loại lỗi cơ bản nhất. Chúng xảy ra khi có vấn đề với mã PHP本身的. Laravel giúp chúng ta xử lý những lỗi này một cách nhẹ nhàng.

Để tùy chỉnh cách Laravel xử lý lỗi PHP, bạn có thể chỉnh sửa tệp app/Exceptions/Handler.php:

public function register()
{
$this->reportable(function (Throwable $e) {
// Logic báo cáo lỗi tùy chỉnh ở đây
});
}

Điều này cho phép bạn thêm logic tùy chỉnh cho việc xử lý lỗi PHP. Điều này giống như có một trợ lý cá nhân để xử lý mọi vấn đề không mong muốn!

Ghi Nhật ký

Bây giờ chúng ta đã xem xét qua lỗi, hãy nói về ghi nhật ký. Ghi nhật ký giống như việc giữ một日记 cho ứng dụng của bạn - nó giúp bạn theo dõi những gì đang diễn ra đằng sau cảnh.

Cấu hình Ghi Nhật ký

Laravel sử dụng thư viện mạnh mẽ Monolog để ghi nhật ký. Bạn có thể cấu hình các tùy chọn ghi nhật ký trong tệp config/logging.php.

Dưới đây là một ví dụ về cách thiết lập một kênh nhật ký tùy chỉnh:

'channels' => [
'custom' => [
'driver' => 'single',
'path' => storage_path('logs/custom.log'),
'level' => 'debug',
],
],

Điều này tạo ra một kênh nhật ký mới có tên 'custom' ghi vào tệp custom.log. Điều này giống như tạo một sổ tay đặc biệt chỉ để theo dõi thông tin cụ thể bạn muốn!

Ghi Tin nhắn Nhật ký

Ghi vào nhật ký rất dễ dàng trong Laravel. Dưới đây là một số ví dụ:

Log::info('Người dùng đăng nhập thành công');
Log::warning('Lần đăng nhập không hợp lệ');
Log::error('Thanh toán thất bại', ['user_id' => $user->id]);

Những dòng này ghi các tin nhắn nhật ký khác nhau. Điều này giống như để lại các ghi chú cho chính bạn (hoặc các nhà phát triển tương lai) về những gì đang diễn ra trong ứng dụng của bạn.

Mức Độ Ghi Nhật ký

Laravel hỗ trợ nhiều mức độ ghi nhật ký, mỗi mức độ chỉ ra mức độ nghiêm trọng khác nhau của sự kiện được ghi. Dưới đây là bảng các mức độ nhật ký, từ thấp đến cao:

Mức độ Mô tả
DEBUG Thông tin gỡ lỗi chi tiết
INFO Các sự kiện thú vị, như người dùng đăng nhập
NOTICE Các sự kiện bình thường nhưng quan trọng
WARNING Các sự kiện ngoại lệ nhưng không phải là lỗi
ERROR Các lỗi thời gian chạy không yêu cầu hành động ngay lập tức
CRITICAL Các điều kiện nghiêm trọng, như thành phần không khả dụng
ALERT Cần hành động ngay lập tức
EMERGENCY Hệ thống không thể sử dụng được

Chọn mức độ phù hợp dựa trên tầm quan trọng của sự kiện bạn đang ghi. Điều này giống như chọn màu highlighter phù hợp cho các phần khác nhau của ghi chú học tập của bạn!

Xem Nhật ký

Mặc định, Laravel lưu nhật ký trong thư mục storage/logs. Bạn có thể xem các nhật ký này bằng bất kỳ trình soạn thảo văn bản nào. Để có trải nghiệm người dùng thân thiện hơn, bạn có thể sử dụng lệnh tail内置 trong Laravel:

php artisan log:tail

Lệnh này sẽ hiển thị các mục nhật ký mới trong thời gian thực, giống như theo dõi một luồng trực tiếp của日记 ứng dụng của bạn!

Kết luận

Và đó là tất cả, các bạn! Chúng ta đã cùng nhau hành trình qua thế giới của lỗi và ghi nhật ký trong Laravel. Nhớ rằng, lỗi không phải là kẻ thù của bạn - chúng là cơ hội để cải thiện mã của bạn. Và ghi nhật ký là người bạn trung thành, luôn ở đó để giúp bạn hiểu những gì đang diễn ra trong ứng dụng của bạn.

Trong hành trình Laravel tiếp theo của bạn, đừng sợ hãi khi mắc lỗi. Mỗi lỗi là một cơ hội để học điều mới. Hãy tiếp tục mã hóa, tiếp tục ghi nhật ký và quan trọng nhất, hãy tiếp tục vui vẻ!

Chúc các bạn may mắn, những nhà vô địch Laravel tương lai! ??‍??‍?

Credits: Image by storyset