В чем разница между классом Debug и классом Trace? - программирование
Подтвердить что ты не робот

В чем разница между классом Debug и классом Trace?

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

4b9b3361

Ответ 1

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

Ответ 2

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