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

  1. 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.
  2. INFO và WARN:
    • Phù hợp cho môi trường sản xuất để theo dõi hoạt động chung.
  3. 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.

About the Author

Ngọc Tri

View all author's posts

Leave a Comment

Your email address will not be published. Required fields are marked *

Bài viết khác

Ngôn ngữ lập trình Golang

Golang là gì? Go (hay còn gọi là Golang) là một ngôn ngữ lập trình được thiết kế dựa trên tư duy lập trình hệ thống. Go được phát triển bởi Robert Griesemer, Rob Pike và Ken Thompson tại Google vào năm 2007. Điểm mạnh của Go là bộ thu gom rác và hỗ trợ […]

Tìm hiểu Git và GitHub

Git là gì? Git là một hệ thống quản lý phiên bản phân tán (Distributed Version Control System – DVCS), nó là một trong những hệ thống quản lý phiên bản phân tán phổ biến nhất hiện nay. Git cung cấp cho mỗi lập trình viên kho lưu trữ (repository) riêng chứa toàn bộ lịch sử thay đổi. Version Control System […]

Browser

Browser (Web Browser, Trình duyệt web) là phần mềm trên máy tính, điện thoại hoặc thiết bị thông minh, cho phép người dùng truy cập, hiển thị và tương tác với các trang web, tài nguyên Internet. Về bản chất, trình duyệt gửi các yêu cầu (HTTP/HTTPS request) đến máy chủ web, nhận về mã […]

Tìm hiểu DNS

DNS là gì? DNS (Domain Name System) là một dịch vụ phân giải tên miền, giúp chuyển đổi các tên miền (ví dụ: www.ducphat.com) thành địa chỉ IP (ví dụ: 93.184.216.34) và ngược lại. Thay vì phải nhớ dãy số IP, chúng ta chỉ cần nhập tên miền, DNS sẽ tìm kiếm địa chỉ IP […]

Tìm hiểu giao thức HTTP

HTTP là gì? HTTP (HyperText Transfer Protocol) là giao thức truyền tải siêu văn bản, dùng để trao đổi dữ liệu giữa client (thường là trình duyệt web) và server (máy chủ web) qua mô hình request–response. HTTP hoạt động ở tầng ứng dụng (Application Layer) trong mô hình OSI/TCP-IP, dựa trên kết nối TCP […]

Internet là gì?

Internet, hay còn gọi là mạng toàn cầu, là một hệ thống mạng máy tính kết nối với nhau trên toàn thế giới, cho phép trao đổi dữ liệu và thông tin một cách nhanh chóng và liên tục. Internet kết nối các thiết bị thông qua các giao thức và phương thức truyền tải […]