2

我一直在尝试在 .net 4.5 中使用 ETW。

我有一个 WCF 服务和控制台应用程序,我想要它使用 EventSource 来编写消息,但是,我很难理解如何创建自己的 ETW(EventSource 和 EventListener)以记录到文件(滚动文件)。

有什么建议么?

4

2 回答 2

4

除了magicandre1981的回答,你应该添加: -

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

这可以在与您登录的应用程序相同的应用程序中(进程中),也可以在完全独立的应用程序中(进程外)。

于 2014-08-27T11:00:39.283 回答
2

安装Microsoft EventSource 库的 Nuget 包

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

并在派生自 EventSource 的类中定义事件。

事件源演示

现在使用语义日志记录应用程序块Enterprise Library使用事件。

这是一个如何使用它的视频:

引入语义日志

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

于 2013-08-14T17:50:57.360 回答