Отображение событий в реальном времени из EventProviderTraceListener в трассировке

Я ищу способ увидеть события, записанные с помощью EventProviderTraceListener в режиме реального времени. Я могу использовать logman для запуска и остановки сеанса трассировки, а затем декодировать полученный файл.etl, но я хотел бы видеть события по мере их поступления.

Вот пример класса C#, который я использую для тестирования:

public class TraceTest
{
    private static Guid ProviderGuid = new Guid("{2EC22694-F8D3-4066-B089-300DF0749C71}");
    private static EventProviderTraceListener listener = new EventProviderTraceListener(ProviderGuid.ToString(), Test Listener", "::");
    private static TraceSource source = new TraceSource("TestSource", SourceLevels.All);

    public TraceTest()
    {
        source.Listeners.Add(listener);

        source.TraceInformation("Tracing prototype.");
    }
}

Используя трассировку, я могу начать новый сеанс трассировки, введя guid, но я не знаю, где искать файлы tmf, чтобы иметь возможность декодировать сообщения - я вижу, что они приходят, но они регистрируются с "Нет Формат информации найден ".

1 ответ

Решение

Поскольку вы не входите напрямую в ETW, вы можете написать свой собственный TraceListener и добавить его так же, как вы добавляете EventProviderTraceListener (см. Здесь) или используете свой app.config (см. Здесь). Или вы можете сделать это с помощью ETW, например, logman и traceview, с ETWTraceEventSource, как здесь, но для этого требуется права администратора.

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