2. 18:15 12/08/2026
Chào bạn Mai Lan,
Hãy xem lỗi production là một phần của thiết kế vận hành. User cần một thông báo ngắn, mã tham chiếu và hướng dẫn an toàn; đội kỹ thuật cần log có cấu trúc, correlation ID và ngữ cảnh đủ để tái hiện mà không chứa bí mật.
Một cấu trúc thực dụng:
1. Ở bootstrap, cấu hình error reporting theo môi trường: development có thể hiển thị chi tiết, production tắt display_errors và bật log_errors.
2. Chuẩn hóa exception cho lỗi nghiệp vụ có thể xử lý, lỗi validation, lỗi hạ tầng và lỗi không mong đợi. Controller không nên tự echo stack trace.
3. Gắn request/correlation ID từ ingress hoặc sinh tại ứng dụng, trả nó cho client và đưa vào mọi log/event liên quan.
4. Có danh sách dữ liệu cấm log: password, cookie, token, API key, OTP, request body nhạy cảm, file upload và PII không cần thiết. Redact trước khi log.
5. Cảnh báo theo error rate/loại lỗi, có runbook và retention/quyền truy cập log rõ ràng.
Hãy kiểm thử đường lỗi như một use case: database mất kết nối, upstream timeout, validation lỗi và exception ngoài dự kiến. Nếu chỉ test đường thành công, hệ thống thường chỉ bộc lộ vấn đề khi người dùng đang cần nó nhất.
0