2012-10-20 32 views
17

Tôi đang cố gắng viết logic xử lý lỗi và gỡ lỗi tốt hơn trong một trong các ứng dụng của chúng tôi. Ai đó có thể giải thích sự khác biệt giữa lớp Debug và Trace? Các tài liệu trông khá giống nhau. Tôi muốn sử dụng các lớp này cùng với NLog để cải thiện các nỗ lực gỡ lỗi của chúng tôi.Sự khác biệt giữa lớp Debug và lớp Trace là gì?

+1

Một cuộc hội thoại khác về vấn đề này http://stackoverflow.com/questions/179868/trace-vs-debug-in-net-bcl –

Trả lời

3

Gỡ lỗi được sử dụng trong quá trình gỡ lỗi. Dấu vết đang ghi vào tệp nhật ký. Nó giống như việc đăng nhập. Cả hai đều rất giống nhau, nhưng theo dõi để lưu giữ lâu dài, gỡ lỗi để gỡ lỗi thời gian thực.

16

Các lớp DebugTrace có các phương pháp rất giống nhau. Sự khác biệt chính là các cuộc gọi đến lớp Debug thường chỉ được bao gồm trong bản dựng Gỡ lỗi và Dấu vết được bao gồm trong tất cả các bản dựng (Gỡ lỗi và Phát hành). Bạn có thể kiểm soát điều này thông qua trình biên dịch cờ DEBUG và TRACE. Nếu bạn nhìn vào tài liệu cho cả hai, bạn sẽ thấy ConditionalAttribute chú thích các phương thức. Điều này làm cho phương thức gọi để được bao gồm trong các tệp nhị phân chỉ khi cờ trình biên dịch thích hợp được xác định. Bạn có thể xác định cờ trình biên dịch của riêng bạn và sử dụng nó cùng với ConditionalAttribute theo cách tương tự. Lưu ý rằng nếu bạn sử dụng điều này, các phương thức sẽ không bị xóa khỏi các tệp nhị phân đã biên dịch. Các trang web cuộc gọi được sửa đổi để loại bỏ các cuộc gọi phương thức.

Các vấn đề liên quan