TraceSwitch и SourceSwitch — в чем разница?
-
02-10-2019 - |
Вопрос
Так что я, вероятно, упускаю здесь очевидное, но в чем на самом деле разница между функциональностью TraceSwitch
и SourceSwitch
занятия?
Оба они дают идентичные краткие описания:
Предоставляет многоуровневый переключатель для управления трассировкой и выводом отладки без перекомпиляции кода.
Разделы «Примечания» странно похожи на мои глаза.Может ли кто-нибудь объяснить разницу в их функциональности и вариантах использования?
(Для полноты я использую переключатели с моим TraceSource
объект, а не старый статический Trace
класс, хотя сомневаюсь, что это имеет большое значение.)
Решение
Разница в том, что TraceSwitch
работает с Trace
Сообщения, тогда как SourceSwitch
работает с TraceSource
Сообщения, которые связывают сообщения с их источником. Так с А. SourceSwitch
Вы можете настроить своих слушателей на основе, где пришли сообщения трассировки.
Я согласен, что документация не напрямую указывает на разницу, но копать в соответствующих TraceSource
Классная документация, и вы найдете это:
То
TraceSource
Класс идентифицируется по имени источника, как правило, название приложения. Сообщения следования, исходящие из определенного компонента, могут быть инициированы определенным источником трассировки, что позволяет легко идентифицировать все сообщения, исходя из этого компонента.
Есть также образец, показывающий вам, как настроить SourceSwitch
отключить отслеживание из источника трассировки.
Другие советы
(Старый) TraceSwitch по сути представляет собой объект TraceLevel, который используется в сочетании со статическим классом Trace.
(Новый) TraceSource сочетает в себе концепцию TraceLevel с реальными методами вывода.
Как следствие, в большом приложении вы можете использовать несколько TraceSwitches для настройки параметров Trace для разных частей (GUI, DAL) программы, но весь вывод будет отправляться в один и тот же TraceListener(ы).
С помощью TraceSource вы можете иметь независимые выходные каналы.И немного лучший API.
Это объяснение разницы между Tracelevel и Willurevel может помочь: