Thông tin ghi nhật ký trong khi thực hiện ứng dụng của bạn có thể giúp bạn hiểu điều gì đã dẫn đến lỗi hoặc sự cố, mang lại cho bạn nhiều ngữ cảnh hơn. Điều này đặc biệt quan trọng khi bạn nhận được báo cáo lỗi hoặc báo cáo sự cố từ những người không phải là nhà phát triển và không chạy dưới trình gỡ lỗi, người dùng cuối/khách hàng hoặc người không phát triển trong nhóm của bạn.
Nền của tôi có trong trò chơi và việc ghi nhật ký có thể đặc biệt có giá trị với trò chơi vì một vài lý do. Một là nhiều vấn đề có thể liên quan đến các chi tiết cụ thể của phần cứng trên một hệ thống để ghi lại thông tin như loại GPU mà người dùng có, phiên bản trình điều khiển đồ họa nào đang chạy, v.v ... có thể cần thiết để gỡ lỗi các vấn đề chỉ hiển thị trên cấu hình cụ thể. Khác là trò chơi có một khía cạnh mô phỏng, nơi trạng thái của trò chơi đang phát triển theo thời gian để đáp ứng với đầu vào của người dùng kết hợp với mô phỏng những thứ như vật lý, AI và quy tắc trò chơi. Hiểu được những gì đang xảy ra trong khi chạy đến một sự cố hoặc lỗi sẽ giúp tìm ra cách tái sản xuất và có thể đưa ra những manh mối có giá trị cho nguyên nhân gốc rễ của vấn đề.
Thư viện ghi nhật ký thêm chức năng hữu ích cho việc ghi nhật ký và vượt ra ngoài những gì có sẵn từ một printf đơn giản. Điều này bao gồm những thứ như:
- Khả năng kiểm soát số lượng ghi nhật ký dựa trên các yếu tố như cờ -verbose.
- Khái niệm 'kênh' có thể được bật độc lập, tắt hoặc được đặt thành độ dài cụ thể. Ví dụ, để gỡ rối một vấn đề đồ họa, bạn có thể muốn kênh 'đồ họa' được đặt thành độ dài tối đa trong khi tắt các kênh 'mạng' và 'âm thanh'.
- Kết thúc ngược linh hoạt từ đăng nhập vào tệp cục bộ trên đĩa để đăng nhập vào cơ sở dữ liệu từ xa qua mạng.
- An toàn chủ đề để nhật ký hoạt động chính nó khi có khả năng ghi nhật ký đồng thời từ nhiều luồng khác nhau.
- Gắn thẻ tự động các mục nhập nhật ký với dấu thời gian và mọi thông tin có liên quan khác (kênh, mức độ chi tiết, v.v.).
Đối với làm thế nào để sử dụng một thư viện khai thác gỗ, đó là phần nào phụ thuộc vào ứng dụng của bạn, nhưng đây là một số gợi ý chung:
- Hãy sử dụng tốt các kênh và mức rườm rà nếu thư viện khai thác gỗ của bạn cung cấp chúng (và nó nên). Điều này sẽ giúp bạn quản lý những gì có thể trở thành một lượng lớn thông điệp tường trình khi ứng dụng của bạn phát triển.
- Nếu bạn gặp phải tình trạng bất ngờ nhưng không gây tử vong và xử lý nó, hãy đăng nhập một số thông tin về nó trong trường hợp nó dẫn đến các sự cố không lường trước được sau này.
- Khi khởi động ứng dụng, hãy ghi nhật ký bất kỳ thông tin nào có thể hữu ích cho việc tái tạo các lỗi hiếm sau này nếu bạn nhận được lỗi hoặc báo cáo sự cố từ khách hàng. Ở phía bên của quá nhiều thông tin, bạn không bao giờ biết những gì có thể hữu ích trước. Điều này có thể bao gồm những thứ như loại CPU, mô hình GPU và phiên bản trình điều khiển, bộ nhớ khả dụng, phiên bản hệ điều hành, dung lượng ổ đĩa cứng, v.v.
- Chuyển đổi trạng thái khóa để bạn có thể theo dõi trạng thái của ứng dụng bạn đang gỡ lỗi một vấn đề.
Ghi nhật ký: là bất kỳ điều gì hữu ích làm giảm cảm giác đau trong các phiên gỡ lỗi 3 giờ sáng. Sử dụng một thư viện chuẩn cho phép bạn khai thác tiền lệ và lựa chọn thiết kế được thực hiện bởi các tác giả có kinh nghiệm. – Bathsheba
Viết dữ liệu có cấu trúc phù hợp, có khả năng chịu lỗi với một mục tiêu duy nhất trong một chủ đề an toàn bằng cách sử dụng hiệu quả io ... –
Đối với người mới bắt đầu, sẽ hữu ích nếu có câu trả lời chi tiết hơn hoặc ít nhất một liên kết giải thích vấn đề thông suốt. –