Trong Log4J, Slf4J và một vài khung ghi nhật ký khác trong Java, bạn có hai mức "nhà phát triển" để ghi nhật ký:
- GỬI
- TRACE
Tôi hiểu DEBUG làm gì, vì lời giải thích rất rõ ràng:
Cấp DEBUG chỉ định các sự kiện thông tin chi tiết hữu ích nhất để gỡ lỗi một ứng dụng.
Nhưng mức TRACE không cụ thể lắm về trường hợp sử dụng của nó:
Cấp độ TRACE chỉ định các sự kiện thông tin chi tiết hơn DEBUG
(Nguồn: log4J JavaDoc )
Điều này không cho tôi biết làm thế nào hoặc khi nào sử dụng TRACE. Thật thú vị, đây không phải là mức độ nghiêm trọng được xác định trong tiêu chuẩn nhật ký hệ thống . Googling cho sự khác biệt giữa TRACE và DEBUG dường như chỉ quay trở lại "sử dụng DEBUG, ồ, và cũng có TRACE". Tôi không thể tìm thấy trường hợp sử dụng cụ thể cho cấp độ TRACE. Điều tốt nhất tôi có thể tìm thấy là trang wiki cũ này đang tranh luận về sự tồn tại của cấp độ.
Điều này, với tư cách là một kiến trúc sư, đưa ra rất nhiều cờ và câu hỏi trong đầu tôi. Nếu một nhà phát triển trẻ yêu cầu tôi thêm TRACE vào kiến trúc của mình, tôi sẽ bắn phá anh ta bằng các câu hỏi:
- Một số ví dụ về thông tin nên được ghi lại bằng TRACE chứ không phải với DEBUG là gì?
- Vấn đề cụ thể nào tôi giải quyết bằng cách đăng nhập thông tin đó?
- Trong các ví dụ đó, các thuộc tính của thông tin được ghi lại phân biệt rõ ràng giữa việc ghi nhật ký ở cấp TRACE thay vì cấp DEBUG là gì?
- Tại sao thông tin đó phải đi qua cơ sở hạ tầng đăng nhập?
- Những lợi ích của việc lưu giữ thông tin trong nhật ký nhật ký thay vì chỉ sử dụng là
System.out.println
gì? - Tại sao tốt hơn là sử dụng nhật ký cho việc này chứ không phải là trình gỡ lỗi?
- Những lợi ích của việc lưu giữ thông tin trong nhật ký nhật ký thay vì chỉ sử dụng là
- Điều gì sẽ là một ví dụ điển hình của việc đăng nhập ở cấp độ TRACE?
- Những lợi ích cụ thể đã đạt được bằng cách đăng nhập ở cấp độ TRACE thay vì DEBUG trong ví dụ là gì?
- Tại sao những lợi ích quan trọng?
- Ngược lại: Tôi đã tránh được những vấn đề gì khi đăng nhập tại TRACE thay vì DEBUG?
- Làm thế nào khác tôi có thể giải quyết những vấn đề? Tại sao đăng nhập ở cấp TRACE tốt hơn các giải pháp khác?
- Có nên để lại câu lệnh log mức TRACE trong mã sản xuất không? Tại sao?
Nhưng cho rằng nó có mặt trong hầu hết các khung chính, tôi đoán nó có ích cho việc gì không? Vậy ... TRACE để làm gì và phân biệt nó với DEBUG là gì?