Tôi trả lời điều này đến từ một kiến trúc dựa trên thành phần, trong đó một tổ chức có thể đang chạy nhiều thành phần có thể dựa vào nhau. Trong một thất bại lan truyền, mức ghi nhật ký sẽ giúp xác định cả hai thành phần nào bị ảnh hưởng và nguyên nhân gốc.
LRI - Thành phần này đã bị lỗi và nguyên nhân được cho là nội bộ (bất kỳ ngoại lệ nào, ngoại lệ chưa xử lý, không phụ thuộc được đóng gói ... ví dụ: cơ sở dữ liệu, ví dụ REST sẽ nhận được lỗi 4xx từ phụ thuộc). Đưa tôi (người bảo trì thành phần này) ra khỏi giường.
WARN - Thành phần này có lỗi được cho là do thành phần phụ thuộc (ví dụ REST sẽ là trạng thái 5xx từ phụ thuộc). Lấy những người bảo trì thành phần THAT ra khỏi giường.
THÔNG TIN - Bất cứ điều gì khác mà chúng tôi muốn nhận được cho một nhà điều hành. Nếu bạn quyết định đăng nhập đường dẫn hạnh phúc thì tôi khuyên bạn nên giới hạn 1 thông điệp tường trình cho mỗi hoạt động quan trọng (ví dụ: mỗi yêu cầu http đến).
Đối với tất cả các thông điệp tường trình, hãy đảm bảo ghi nhật ký ngữ cảnh hữu ích (và ưu tiên làm cho thông điệp có thể đọc được / hữu ích hơn là có các "mã lỗi")
- DEBUG (và bên dưới) - Không nên sử dụng tất cả (và chắc chắn không có trong sản xuất). Trong quá trình phát triển, tôi sẽ khuyên bạn nên sử dụng kết hợp TDD và Gỡ lỗi (khi cần thiết) thay vì mã gây ô nhiễm với các báo cáo nhật ký. Trong sản xuất, ghi nhật ký INFO ở trên, kết hợp với các số liệu khác là đủ.
Một cách hay để hình dung các mức ghi nhật ký ở trên là tưởng tượng một bộ màn hình giám sát cho từng thành phần. Khi tất cả chạy tốt, chúng có màu xanh lá cây, nếu một thành phần ghi lại CẢNH BÁO thì nó sẽ chuyển sang màu cam (màu hổ phách) nếu bất cứ thứ gì ghi lại LRI thì nó sẽ chuyển sang màu đỏ.
Trong trường hợp xảy ra sự cố, bạn nên để một thành phần (nguyên nhân gốc) chuyển sang màu đỏ và tất cả các thành phần bị ảnh hưởng sẽ chuyển sang màu cam / hổ phách.