2009-08-06 5 views
5

У меня есть исключение, которое мне нужно проглотить (исключение при регистрации), однако я не хочу, чтобы информация об исключении полностью терялась в тумане времени, и поэтому я решил, что, по крайней мере, выход его отладки с помощьюWrite to Debug в режиме освобождения

Debug.Write(ex.ToString()); 

Таким образом, если она становится необходимой поддержки можно по крайней мере использовать DebugView на проблемах машин, имеющих.

Проблема: класс Debug удален в режиме выпуска - как мне выводить что-то для отладки в режиме освобождения?

ответ

16

Просто используйте

Trace.Write(ex.ToString()); 

Это делает то же самое, как Debug.Write(ex.ToString());, но не будет удален в режиме выпуска (до тех пор, как вы не удалите определение константы TRACE в настройках проекта)

+3

Не забудьте повернуть файлы журнала через ~ 14 дней, чтобы избежать заполнения жесткого диска. – JBRWilkinson

2

Возможно, стоит рассмотреть некоторые рамки ведения журнала. Я предпочитаю log4net, где у вас разные уровни ведения журнала (DEBUG, INFO, WARN, ERROR), разные регистраторы (вы можете поместить один регистратор для каждой важной части приложения), и вы можете установить разные уровни отладки для разных регистраторов, просто изменив файл конфигурации. Поэтому, если у вас есть проблема в некоторой области кода, вы можете установить уровень DEBUG для этого регистратора (ов), и когда вы закончите, вы можете вернуть исходный уровень.

Это просто царапины на поверхности, есть еще много функций, таких как отправка электронной почты на ошибки или ведение журнала в БД.

Смежные вопросы