Log level là gì?
Log level (mức độ log) là các cấp bậc để phân loại và tổ chức các thông điệp log trong ứng dụng. Nó giúp nhà phát triển dễ dàng kiểm tra, phân tích và quản lý dữ liệu log, từ đó xác định vấn đề hoặc theo dõi hoạt động hệ thống. Các log-level thường gặp: DEBUG, INFO, WARN, ERROR, CRITICAL/FATAL.
DEBUG:
Log dùng để debug. Mục đích sử dụng thường là dành cho developer.
Thông thường là đặt log level này trên môi trường LOCAL/DEVELOPING và không cho phép ở PRODUCTION do số lượng dữ liệu log sẽ rất nhiều. Tuy nhiên đôi khi cũng phải cho phép level log này trên PRODUCTION để thực hiện ghi log và phát hiện ra các lỗi chỉ xảy ra trên PRODUCTION (Không phát sinh trên local).
Ví dụ: Hệ thống dữ liệu trên PRODUCTION thường lớn hơn nhiều so với DEVELOPING nên số lượng trường hợp xảy ra khi áp dữ liệu vào phần mềm cũng nhiều hơn. Các test-case có thể chưa bao quát được hết các lỗi –> Việc đặt debug có thể giúp developer/tester có thể giả lập lại được chính xác toàn bộ thao tác, workflow của cụm dữ liệu khi đi vào/đi ra khỏi phần mềm.
INFO:
Log mang tính chất cung cấp thông tin chung về hoạt động bình thường của ứng dụng.
Ví dụ: Hành vi đăng nhâp vào hệ thống bởi tài khoản nào, …
WARN (WARNING):
Log lại các lỗi tiềm ẩn, có thể gây ra lỗi nhưng chưa ảnh hưởng đến trải nghiệm của người dùng.
Ví dụ: Khách hàng cố tình nhấn nhiều lần vào button thanh toán trong khi người dùng không đủ điều kiện để thanh toán, các warning sẽ được log lại khi khách hàng “cố gắng” làm sai với hướng dẫn.
ERROR:
Log lại các event trên hệ thống đã gây ra lỗi tương đối lớn, có thể gây ảnh hưởng đến trải nghiệm của người dùng.
Ví dụ: Khách hàng thanh toán tiền cho dịch vụ A nhưng không thể trừ tiền của khách hàng do hệ thống thanh toán đang quá tải. Mỗi lần xảy ra sự cố này, một thông báo lỗi (log) sẽ được ghi lại với mức độ ERROR vào log files để sau này có thể đối chiếu và phân tích các lỗi do quá tải hệ thống gây ra, từ đó đánh giá ảnh hưởng của sự cố đối với khách hàng và quá trình thanh toán.
FATAL/CRITICAL:
Log chỉ định để ghi các lỗi nghiêm trọng, thậm chí là đã gây ra gián đoạn dịch vụ, treo/crash phần mềm.
Quy tắc sử dụng log level
- TRACE và DEBUG:
- Chỉ dùng trong môi trường phát triển.
- Không nên bật trong môi trường sản xuất để tránh làm quá tải log.
- INFO và WARN:
- Phù hợp cho môi trường sản xuất để theo dõi hoạt động chung.
- ERROR và FATAL:
- Dùng để phát hiện lỗi và sự cố trong hệ thống.
Tóm lại: Log level phân loại theo từng mục đích sử dụng, tuân theo quy định chung của từng công ty. Việc phân chia log-level sẽ giúp cho việc giám sát/bảo trì phần mềm thuận tiện hơn.