Cách log thông tin lỗi trogn exceptions php
Phần này mình sẽ giới thiệu với mọi người về report lỗi, và xử lý lỗi trong Laravel. Trong Laravel tất cả các error, exception đều chạy qua class App\Exceptions\Handler để làm nhiệm vụ ghi log rồi hiển thị đến người dùng. 1. Cấu hình.Cấu hình
0 thì khi gặp lỗi Laravel sẽ hiển thị các thông tin của lỗi đó lên trên màn hình cho user và ngược lại nếu là false thì Laravel chỉ hiển thị status code là 500 trên màn hình cho user. Demo màn hình report lỗi khi ở chế độ debug mode là true Lưu ý: Các bạn chỉ nên bật mode debug khi ở trên môi trường local, hoặc dev thôi. Còn trên production tuyệt đối không bao giờ được để là
0. Vì như thế sẽ làm lộ ra các thông tin cấu hình trên ứng dụng của bạn. 2. Exception Handler.Như mình đã nói ở trên, tất cả các exception đều được xử lý qua
2. Trong class này các bạn có thể khai báo các custom logic trong phương thức register, phương thức này sẽ rất hữu dụng nếu như bạn muốn sử dụng thêm một ứng dụng error tracking của bên thứ 3. VD:
Ngoài ra bạn cũng có thể tùy chỉnh context của exception bằng cách overwrite lại phương thức
3 trong class cha. VD: Mình sẽ thêm URL gây ra lỗi vào context.
Nếu như bạn muốn loại bỏ một exception nào đó, không muốn report exception nữa. Bạn có thể cấu hình trong
4 property. VD: Loại bỏ
5 ra khỏi danh sách report.
Mặc đinh, Laravel sẽ tự động convert các Exception về dạng HTTP response. Tuy nhiên, nếu như bạn cần custom response cho một exception nào đó bạn có thể sử dụng method
6. VD: Mình sẽ render ra view
7 khi gặp
5.
Ngoài ra bạn muốn thay đổi các view error trong Laravel, bạn có thể tạo ra các view trong thư mục
9 với tên là các mã lỗi tương ứng. Ví dụ:
0 Hoặc bạn cũng có thể publish hết các error view trong core của Laravel ra thư mục resources/views/errors để chỉnh sửa cho tiện. Bạn có thể sử dụng câu lệnh.
Trong trường hợp, bạn muốn render ra một view error nào đó mà không muốn raise exception trong đoạn code đó. Bạn có thể sử dụng hàm
1 với cú pháp.
Trong đó:
3. Lời kết.Phần này mình chỉ giới thiệu với mọi người những gì liên quan đến exception handle thôi, còn các thứ khác như logging mình sẽ giới thiệu với mọi người trong một bài khác. |