PerfView не может фиксировать пользовательские события ETW

У меня есть демонстрационное решение, которое вызывает события с помощью класса System.Diagnostics.Tracing.EventSource. У меня есть класс, как показано ниже: -

[EventSource(Guid = "B6741490-9F53-4620-A45C-49004C1B4444", Name = "DemoEvent")]
sealed public class DemoEventSource : EventSource
{
    [Event(1, Level = EventLevel.LogAlways, Keywords = EventKeywords.None)]
    public void RaiseEvent()
    {
        this.WriteEvent(1, "Found");
    }
}

Я выполнил шаги, указанные здесь, чтобы использовать инструмент PerfView для просмотра событий. генерируется этим решением. Я указал *DemoEvent в разделе AdditionalProvider окна PerfView. Однако я не могу увидеть эти события в выводе PerfView. Может ли кто-нибудь помочь мне здесь?


person AvinashK    schedule 04.08.2016    source источник
comment
вам нужно передать значение уровня для просмотра или удалить уровень из события   -  person magicandre1981    schedule 04.08.2016
comment
Спасибо за ваш комментарий, я удалил уровень из события, но это не сработало.   -  person AvinashK    schedule 05.08.2016
comment
также удалить ключевое слово. также попробуйте использовать GUID вместо имени   -  person magicandre1981    schedule 05.08.2016
comment
любое обновление? Это работает сейчас?   -  person magicandre1981    schedule 11.08.2016


Ответы (1)


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

[Event(1, Level = EventLevel.LogAlways, Keywords = EventKeywords.None)]
public void RaiseEvent(string message)
{
    this.WriteEvent(1, message);
}

Избегайте предоставления GUID. Это рекомендуется в руководство по программированию источника событий от авторов .NET, что вы указываете только имя и позволяете автоматически генерировать GUID из имени.

Убедитесь, что вы используете последний выпуск PerfView с GitHub, а не устаревшую версию из Microsoft Downloads.

person David Burg    schedule 02.05.2018