Имя ETW EventSource во время выполнения

Я хотел бы знать, можем ли мы установить имя EventSource во время выполнения.

[EventSource(Name = "Test-SourceLogger")]
public sealed class EventSourceLogger : EventSource

У меня есть несколько приложений, которые хотят войти в разные источники событий. Если это можно настроить, я могу повторно использовать компонент для EventViewer.

Дополнительная информация о EventSourceAttribute

[AttributeUsage(AttributeTargets.Class)]
public sealed class EventSourceAttribute : Attribute

Заранее спасибо.


person KRP    schedule 25.09.2013    source источник
comment
хорошо, есть свойство Name. Попробуйте установить это и посмотрите, работает ли это.   -  person magicandre1981    schedule 25.09.2013
comment
Свойство Name устанавливается во время компиляции (жестко закодировано), есть ли способ оценить это свойство во время выполнения и изменить его.   -  person KRP    schedule 26.09.2013
comment
у него есть публичный set/get, так что попробуйте. Если это не сработает, вы SOL.   -  person magicandre1981    schedule 26.09.2013


Ответы (2)


Вы можете передать имя источника события через конструктор экземпляра вашего EventSource. Каждый новый экземпляр может иметь другое имя источника событий. Просто не используйте шаблон singleton.

person Zeljko    schedule 23.04.2017
comment
Взгляните на реализацию EtwQueueEventSource по этой ссылке. - person Zeljko; 24.04.2017

Я могу сгенерировать этот класс с помощью CodeDom и использовать его соответствующим образом. Спасибо за ваш вклад.

person KRP    schedule 27.09.2013
comment
Можете ли вы объяснить это немного подробнее, что вы делаете? - person magicandre1981; 27.09.2013