2009-08-06 44 views
5

Tôi có một ngoại lệ mà tôi cần phải nuốt (ngoại trừ trong quá trình đăng nhập), tuy nhiên tôi không muốn thông tin ngoại lệ bị mất hoàn toàn vào thời gian và vì vậy tôi cũng có thể xuất nó để gỡ lỗi bằng cách sử dụngViết cho Debug ở chế độ phát hành

Debug.Write(ex.ToString()); 

Bằng cách đó nếu nó trở thành hỗ trợ cần thiết ít nhất có thể sử dụng DebugView trên máy gặp sự cố.

Sự cố là lớp Gỡ lỗi được xóa trong chế độ phát hành - làm cách nào để xuất kết quả nào đó để gỡ lỗi trong khi ở chế độ phát hành?

Trả lời

16

Đơn giản chỉ cần sử dụng

Trace.Write(ex.ToString()); 

này hoạt động tương tự như Debug.Write(ex.ToString()); nhưng sẽ không được gỡ bỏ trong chế độ Release (miễn là bạn không loại bỏ các định nghĩa của hằng số TRACE trong cài đặt dự án của bạn)

+3

Nhớ xoay các tệp nhật ký của bạn sau ~ 14 ngày để tránh làm đầy đĩa cứng. – JBRWilkinson

2

Có thể sẽ rất đáng để xem xét một số khung khai thác gỗ. Tôi thích log4net nơi bạn có các mức ghi khác nhau (DEBUG, INFO, WARN, ERROR), các logger khác nhau (bạn có thể đặt một logger cho mỗi phần quan trọng của ứng dụng), và bạn có thể thiết lập các mức gỡ lỗi khác nhau cho các logger khác nhau. tập tin cấu hình. Vì vậy, nếu bạn có một vấn đề trong một số khu vực của mã, bạn có thể đặt mức DEBUG cho (các) trình ghi nhật ký đó và khi bạn hoàn tất, bạn có thể đặt lại cấp gốc.

Điều này chỉ làm xước bề mặt, có nhiều tính năng khác, như gửi email do lỗi hoặc đăng nhập vào DB.

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