CodeIgniter cho phép bạn xây dựng báo cáo lỗi trong
ứng dụng của bạn bằng cách dùng các hàm được đề cập dưới đây. Hơn nữa, nó còn
có 01 lớp dùng ghi nhật ký lỗi cho phép các thông điệp biên dịch và lỗi được
lưu lại thành các tập tin.
Ghi chú:
Mặc định, CodeIgniter hiển thị tất cả lỗi PHP. Rất
có thể bạn sẽ muốn thay đổi thuộc tính này 01 khi việc phát triển hoàn thành
(vì lí do bảo mật chẳng hạn). Bạn sẽ tìm thấy hàm error_reporting() tại tập tin
index.php trong thư mục gốc. Vô hiệu hóa tính năng báo cáo lỗi sẽ KHÔNG ngăn
các tập tin nhật ký được ghi lại mỗi khi ứng dụng phát sinh lỗi.
Không giống như hầu hết các hệ thống trong
CodeIgniter, các hàm xử lý lỗi đơn giản là các thể hiện dạng thủ tục đơn giản
có phạm vi toàn cục trên toàn ứng dụng. Phạm vi này cho phép ta có thể đặt bẫy
các thông điệp lỗi mà không cần quan tâm về phạm vi lớp/hàm.
CodeIgniter cũng trả về 01 mã trạng thái bất cứ lúc
nào 01 phần trong lõi hệ thống gọi hàm exit().
Mã trạng thái exit này khác với mã trạng thái HTTP, và nó phục vụ cho việc ghi
chú cho các tiến trình khác đang chờ xem đoạn mã xử lý xong hoàn toàn chưa, nếu
chưa , sẽ xuát hiện 01 dạng lỗi gây ra việc hủy tiến trình. Những giá trị này
được xác định trong tập tin application/config/constants.php. Trong khi
các mã trạng thái exit rất hữu dụng trong các thiết lập CLI, trả về các mã giúp
đỡ phù hợp giúp phần mềm máy chủ lưu trữ dấu vết các đoạn mã của bạn và tình
trạng sức khỏe phần mềm của bạn.
Các hàm sau cho phép bạn sinh ra lỗi:
Tham sốs:
|
·
$message (hỗn hợp) – Thông điệp lỗi
·
$status_code (số nguyên) – mã trạng thái
HTTP Response
·
$heading (chuỗi) – Tiêu đề trang báo
lỗi
|
Kiểu trả về:
|
Thủ tục
|
Hàm
này sẽ hiển thị thông điệp lỗi gắn nó vào 01 trang biểu mẫu báo lỗi khi bạn thi
hành nó:
application/views/errors/html/error_general.php
hoặc:
application/views/errors/cli/error_general.php
Tham
số tùy chọn $status_code quyết định mã trạng thái HTTP nào sẽ được gửi kèm
với lỗi xảy ra. Nếu $status_code <100, mã trạng thái HTTP sẽ được thiết lập
thành 500, và mã trạng thái exit sẽ được thiết lập thành $status_code + EXIT__AUTO_MIN. Nếu giá trị đó lớn hơn EXIT__AUTO_MAX, hoặc nếu $status_code là 100 hoặc lớn hơn, mã trạng thái exit sẽ được
thiết lập thành EXIT_ERROR. Bạn có thể kiểm tra tại đây: application/config/constants.php
để biết thêm chi tiết.
Tham số:
|
·
$page (chuỗi) – chuỗi liên kết URI
·
$log_error (bool) – Có ghi nhật ký lỗi hay không
|
Kiểu trả về:
|
Thủ tục
|
Hàm
này sẽ hiển thị thông điệp lỗi 404 gắn vào 01 trang biểu mẫu lỗi khi bạn thi
hành nó:
application/views/errors/html/error_404.php
hoặc:
application/views/errors/cli/error_404.php
Hàm
nhận vào 01 chuỗi là đường dẫn đến tập tin của trang không tồn tại. Mã trạng
thái exit sẽ được thiết lập thành EXIT_UNKNOWN_FILE. Hãy chú ý rằng CodeIgniter tự động hiển thị thông
báo lỗi 404 nếu không tìm thấy controllers.
CodeIgniter
tự động ghi vào nhật ký mỗi lần gọi hàm show_404()
. Thiết lập tham số thứ 02 là FALSE sẽ bỏ qua thao tác ghi nhật ký.
Tham số:
|
·
$level (chuỗi) – Cấp độ nhật ký:
‘error’, ‘debug’ hoặc ‘info’
·
$message (chuỗi) – thông điệp lỗi
ghi vào nhật ký
|
Kiểu trả về:
|
Thủ tục
|
Hàm
này cho phép ta ghi các thông điệp vào các tập tin nhật ký. Bạn phải cung cấp
01 trong 03 “cấp độ” trong tham số đầu nhằm chỉ ra loại thông điệp (debug,
error, info), kèm với thông điệp trong tham số thứ 02.
Ví
dụ:
if
($some_var == '')
{
log_message('error',
'Biến không chứa giá trị.');
}
else
{
log_message('debug',
'Biến thiết lập không đúngvariable was correctly
set');
}
log_message('info',
'Mục đích của biến là cung cấp giá trị.');
Có
03 loại thông điệp:
- Thông điệp Error-> là các lỗi thật sự, ví như lỗi PHP hoặc lỗi người dùng.
- Thông điệp Debug ->là những thông điệp gán vào trong qua trình biên dịch. Ví dụ, nếu 01 lớp khởi tạo, bạn cần ghi nhật ký lại như là thông tin biên dịch.
- Thông điệp Informational-> là các thông điệp cấp thấp nhất, đơn giản để cung cấp thông tin cần quan tâm về tiến trình nào đó.
Ghi
chú:
Để
tập tin nhật ký có thể ghi được, thư mục logs/ phải được thiết lập thuộc
tính là có thể ghi được. Thêm nữa là bạn phải thiết lập giá trị sau đây lớn hơn
0
$config['log_threshold'] = 4;
ở
trong tập tin application/config/config.php.
0->vô
hiệu hóa ghi nhật ký
1->hiển
thị thông điệp lỗi
2->hiển
thị thông điệp debug
3->hiển
thị thông điệp cung cấp thông tin
4->hiển
thị tất cả thông điệp nếu có
Tập
tin nhật ký này lưu trữ theo ngày và nằm ở thư mục application/logs
Nếu vẫn chưa rõ các bạn xem thêm video clip sau:
By #tiensim
Nguồn: User Guide – General Topics
Không có nhận xét nào:
Đăng nhận xét