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