Phân tích thành phần của một thông điệp log tốt (thời gian, cấp độ
INFO/
ERROR, tên logger, nội dung, stack), cách định dạng đúng bằng template SLF4J/Log4j2 (
"{}" thay cho nối chuỗi), cách ghi log exception (
logger.error(..., ex)), khi nào dùng các cấp
ERROR/
WARN/
INFO/
DEBUG/
TRACE, cùng các thực tiễn tốt nhất: không có dữ liệu nhạy cảm, thông điệp dễ hiểu, ID tương quan (
orderId,
userId) và cấu hình
log4j2.xml hợp lý.