2013-06-24 4 views
2

Я пытался работать с ETW в .net 4.5.Rolling файл для ETW EventSource .NET 4.5

У меня есть приложение службы WCF и консольное приложение, и я хочу, чтобы он использовал EventSource для записи сообщений, однако я изо всех сил пытаюсь понять, как создать собственный ETW (EventSource и EventListener) для записи в файл (файл перетаскивания).

Любые предложения?

ответ

2

Установите Nuget Package of Microsoft EventSource Library

Install-Package Microsoft.Diagnostics.Tracing.EventSource -Pre 

и определяют события в классе, который получен из источников событий.

EventSourceDemo

Теперь используйте Semantic Logging Application Block из Enterprise Library потреблять события.

Вот видео, как использовать его:

Введение в Семантический Logging

http://channel9.msdn.com/posts/Introducing-Semantic-Logging

4

В дополнение к magicandre1981's answer, следует добавить: -

TraceEventSession _session = new TraceEventSession(
    "yourSessionName", @"C:\yourLogFile.etl") 
{ 
    CircularBufferMB = 100 //100mb rolling log file 
}; 
_session.EnableProvider(TraceEventProviders.GetEventSourceGuidFromName(
    "Samples-EventSourceDemos-EventLog"), TraceEventLevel.Always); 

Это может быть в том же приложении, в котором вы регистрируетесь (в процессе), или в режиме ac полностью изолированное приложение (вне процесса).