Tôi đã đọc rất nhiều về truy tìm và ghi nhật ký, cố gắng tìm một số quy tắc vàng cho các thực tiễn tốt nhất trong vấn đề này, nhưng không có gì cả. Mọi người nói rằng các lập trình viên giỏi tạo ra dấu vết tốt, nhưng đặt nó theo cách đó và nó phải đến từ kinh nghiệm.
Tôi cũng đã đọc những câu hỏi tương tự ở đây và qua internet và chúng không thực sự giống với những gì tôi đang hỏi hoặc không có câu trả lời thỏa mãn, có thể vì các câu hỏi thiếu một số chi tiết.
Vì vậy, mọi người nói rằng việc theo dõi nên sắp xếp lại trải nghiệm gỡ lỗi ứng dụng trong trường hợp bạn không thể đính kèm trình gỡ lỗi. Nó sẽ cung cấp đủ ngữ cảnh để bạn có thể thấy đường dẫn nào được thực hiện tại mỗi điểm kiểm soát trong ứng dụng.
Đi sâu hơn, bạn thậm chí có thể phân biệt giữa theo dõi và ghi nhật ký sự kiện, trong đó "ghi nhật ký sự kiện khác với theo dõi ở chỗ nó nắm bắt các trạng thái chính thay vì luồng kiểm soát chi tiết".
Bây giờ, giả sử tôi muốn thực hiện theo dõi và ghi nhật ký chỉ sử dụng các lớp .NET tiêu chuẩn, những lớp trong System.Diagnostics
không gian tên. Tôi hình dung rằng lớp TraceSource phù hợp với công việc hơn lớp Trace tĩnh, vì tôi muốn phân biệt giữa các cấp theo dõi và sử dụng lớp TraceSource tôi có thể truyền vào một tham số thông báo loại sự kiện, trong khi sử dụng lớp Trace tôi phải sử dụng Trace.WriteLineIf
và sau đó xác minh những thứ như SourceSwitch.TraceInformation
và SourceSwitch.TraceErrors
, và thậm chí nó không có thuộc tính như TraceVerbose
hoặc TraceStart
.
Với tất cả những gì trong tâm trí, bạn sẽ xem xét một thực hành tốt để làm như sau:
- Theo dõi một sự kiện "Bắt đầu" khi bắt đầu một phương thức, nó sẽ đại diện cho một hoạt động logic đơn lẻ hoặc một đường ống, cùng với một chuỗi đại diện của các giá trị tham số được truyền vào phương thức.
- Theo dõi một sự kiện "Thông tin" khi chèn một mục vào cơ sở dữ liệu.
- Theo dõi một sự kiện "Thông tin" khi đi theo con đường này hay con đường khác trong một câu lệnh if / other quan trọng.
- Theo dõi "Lỗi nghiêm trọng" hoặc "Lỗi" trong khối bắt tùy thuộc vào việc đó có phải là lỗi có thể phục hồi hay không.
- Theo dõi sự kiện "Dừng" khi kết thúc thực hiện phương thức.
Ngoài ra, vui lòng làm rõ khi nào tốt nhất để theo dõi các loại sự kiện Verbose và Cảnh báo. Nếu bạn có ví dụ về mã với theo dõi / ghi nhật ký đẹp và sẵn sàng chia sẻ, điều đó sẽ rất xuất sắc.
Lưu ý: Tôi đã tìm thấy một số thông tin tốt ở đây, nhưng vẫn không phải là những gì tôi đang tìm kiếm: http://msdn.microsoft.com/en-us/magazine/ff714589.aspx