Отображение событий в реальном времени из 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, как здесь, но для этого требуется права администратора.