CÁC MỨC ĐỘ SEVERITY TRONG LOG VIEWER: TỪ "TIẾNG ĐỒNG HỒ" ĐẾN "CÒI BÁO ĐỘNG ĐỎ"
trong các gói giao diện quản lý log hiện đại như Laravel Log Viewer (của Opcodes), việc hiểu rõ các mức độ nghiêm trọng (Severity Levels) là kỹ năng cốt lõi giúp một lập trình viên hoặc kỹ sư vận hành (DevOps) khoanh vùng sự cố chỉ trong vài nốt nhạc.
Thay vì phải đọc một đống log text hỗn độn, hệ thống phân loại log thành các cấp độ từ thấp đến cao theo tiêu chuẩn quốc tế. Hãy cùng mổ xẻ ý nghĩa thực tế của từng mức Severity trong Log Viewer để biết khi nào cần nhìn vào đâu.
Các mức độ log thường được sắp xếp theo thứ tự từ ít nghiêm trọng (verbose nhất) đến cực kỳ nghiêm trọng:
1. EMERGENCY / FATAL (Khẩn cấp / Sập hệ thống)
-
Ý nghĩa: Đây là mức độ nghiêm trọng cao nhất. Nó báo hiệu rằng toàn bộ hệ thống hoặc một tiến phần cốt lõi đã hoàn toàn không thể sử dụng được nữa (ví dụ: sập kết nối database chính, lỗi cạn kiệt bộ nhớ nghiêm trọng dẫn đến việc tiến trình bị đột tử).
-
Hành động: Hệ thống cần can thiệp thủ công ngay lập tức. Các công cụ giám sát (như Sentry, PagerDuty) sẽ hú còi gọi trực chiến dev/devops giữa ban đêm.
2. ALERT (Cảnh báo khẩn cấp)
-
Ý nghĩa: Tình trạng chưa đến mức sập toàn tập như Emergency, nhưng đã cực kỳ nguy hiểm (ví dụ: phát hiện bảng dữ liệu bị corrupt, mất kết nối với dịch vụ thanh toán cốt lõi).
-
Hành động: Phải xử lý ngay lập tức để ngăn chặn hệ thống sập hoàn toàn theo dây chuyền.
3. CRITICAL (Nguy kịch)
-
Ý nghĩa: Một thành phần quan trọng của hệ thống đang gặp lỗi lớn (ví dụ: ổ cứng server lưu log sắp đầy 100%, Redis cache cluster chết một node).
-
Hành động: Cần kiểm tra và khắc phục nhanh trong khung giờ làm việc để tránh leo thang thành lỗi sập app.
4. ERROR (Lỗi nghiệp vụ / Ngoại lệ)
-
Ý nghĩa: Đây là mức độ bạn sẽ thấy nhiều nhất trong quá trình chạy ứng dụng hàng ngày. Nó báo hiệu rằng một tác vụ cụ thể nào đó đã thất bại (ví dụ: người dùng nhập sai mật khẩu quá nhiều lần, gọi API bên thứ ba bị timeout, lỗi validate dữ liệu đầu vào nặng, hoặc một
Exceptionchưa được bắt). -
Hành động: Ứng dụng vẫn tiếp tục chạy (không bị crash toàn hệ thống), nhưng một giao dịch hoặc một request của người dùng đã bị hỏng. Bạn cần check Log Viewer ở mức này để tìm bug code.
5. WARNING (Cảnh báo tiềm ẩn)
-
Ý nghĩa: Hệ thống vẫn hoạt động bình thường 100%, không có lỗi nào xảy ra cả, nhưng có một số dấu hiệu "bất thường" có thể gây lỗi trong tương lai (ví dụ: sử dụng một hàm đã bị deprecated sắp bị xóa ở bản Laravel tiếp theo, query database chạy chậm hơn ngưỡng 2 giây, hoặc dung lượng RAM đệm đang ở mức 85%).
-
Hành động: Chưa cần sửa gấp ngay lập tức, nhưng cần theo dõi để dọn dẹp kỹ thuật (refactor) trong các sprint bảo trì.
6. NOTICE / INFO (Thông tin vận hành)
-
Ý nghĩa: Ghi nhận lại các mốc sự kiện bình thường trong chu kỳ sống của ứng dụng. Không có lỗi lầm gì ở đây cả. (Ví dụ: Khởi động queue worker thành công, người dùng X vừa bấm đăng nhập, cronjob chạy xong bản báo cáo doanh thu lúc 00:00).
-
Hành động: Không cần làm gì cả. Mức này dùng để truy vết lịch sử hoạt động (Audit Trail) khi cần kiểm tra xem lúc mấy giờ ai đã làm gì trên hệ thống.
7. DEBUG (Gỡ lỗi chi tiết)
-
Ý nghĩa: Mức độ chi tiết tối đa dành riêng cho lập trình viên trong giai đoạn phát triển (Local/Staging). Nó in ra giá trị biến (
dd(),Log::debug()), câu lệnh SQL thô, hoặc từng bước đi của vòng lặp. -
Hành động: Trên môi trường Production, mức này thường bị tắt hoàn toàn để tránh làm phình to file log và làm lộ thông tin nhạy cảm ra ngoài.
💡 Mẹo sử dụng Log Viewer hiệu quả:
Khi mở giao diện Log Viewer lên để kiểm tra lỗi của hệ thống (ví dụ hệ thống báo lỗi khi chạy lệnh convert địa chỉ như code bạn vừa đưa), việc đầu tiên bạn cần làm là bật bộ lọc (Filter) thu hẹp phạm vi từ mức ERROR trở lên.
Việc lọc bỏ bớt các dòng INFO hay DEBUG rác sẽ giúp bạn ngay lập tức nhìn thấy thủ phạm gây lỗi nằm ở dòng stack trace nào mà không mất thời gian dò tìm.
All Rights Reserved