2012-10-20 10 views
17

Я пытаюсь написать лучшую обработку ошибок и логику отладки в одном из наших приложений. Может ли кто-нибудь объяснить разницу между классом Debug и Trace? Документация выглядит довольно похоже. Я хочу использовать эти классы совместно с NLog для улучшения наших усилий по отладке.В чем разница между классом Debug и классом Trace?

+1

Другой разговор об этой проблеме http://stackoverflow.com/questions/179868/trace-vs-debug-in-net-bcl –

ответ

3

Отладка используется во время отладки. Трассировка записывается в файл журнала. Это похоже на регистрацию. Оба они очень похожи, но выполняют трассировку для долгосрочного хранения, отладки для отладки в реальном времени.

16

Debug и Trace классы имеют похожие методы. Основное различие заключается в том, что вызовы класса Debug обычно включаются только в сборку Debug, а Trace включены во все сборки (Debug и Release). Вы можете управлять этим через флагов компилятора DEBUG и TRACE. Если вы посмотрите на документацию для обоих, вы заметите, что ConditionalAttribute аннотирует методы. Это приводит к тому, что вызовы методов включаются в двоичные файлы только тогда, когда определен соответствующий флаг компилятора. Вы можете определить свой собственный флаг компилятора и использовать его в сочетании с ConditionalAttribute аналогичным образом. Обратите внимание: если вы используете это, методы не удаляются из скомпилированных двоичных файлов. Сайты вызовов изменены для удаления вызовов метода.

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