TraceSwitch и SourceSwitch - какая разница?

Так что я, вероятно, здесь упускаю очевидное, но в чем разница между функциональностью TraceSwitch а также SourceSwitch классы?

Они оба дают идентичные краткие описания:

Предоставляет многоуровневый переключатель для контроля трассировки и отладки без перекомпиляции кода.

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

(Для полноты картины я использую переключатели с моим TraceSource объект, а не старая статика Trace класс, хотя я сомневаюсь, что это имеет большое значение.)

3 ответа

Решение

Разница в том, что TraceSwitch работает с Trace сообщения тогда как SourceSwitch работает с TraceSource сообщения, которые связывают сообщения с их источником. Так с SourceSwitch вы можете настроить своих слушателей в зависимости от того, откуда пришли сообщения трассировки.

Я согласен, что документация не указывает прямо на разницу, но копаться в связанных TraceSource документация класса, и вы найдете это:

TraceSource Класс идентифицируется по имени источника, как правило, по имени приложения. Сообщения трассировки, поступающие от конкретного компонента, могут инициироваться конкретным источником трассировки, что позволяет легко идентифицировать все сообщения, поступающие от этого компонента.

Существует также пример, показывающий, как настроить SourceSwitch отключить трассировку от источника трассировки.

(Старый) TraceSwitch в основном является объектом TraceLevel, который будет использоваться в сочетании со статическим классом Trace.

(Более новый) TraceSource объединяет концепцию TraceLevel с реальными методами вывода.

Как следствие, в большом приложении вы можете использовать несколько переключателей TraceSwitch для настройки параметров Trace для разных частей (GUI, DAL) программы, но все выходные данные будут отправлены одному и тому же TraceListener(s).

С TraceSource вы можете иметь независимые выходные каналы. И немного лучше API.

Это объяснение различия между TraceLevel и SourceLevel может помочь:

Система.Диагностика скрытых SourceLevels

Другие вопросы по тегам