我一直在尝试在 .net 4.5 中使用 ETW。
我有一个 WCF 服务和控制台应用程序,我想要它使用 EventSource 来编写消息,但是,我很难理解如何创建自己的 ETW(EventSource 和 EventListener)以记录到文件(滚动文件)。
有什么建议么?
我一直在尝试在 .net 4.5 中使用 ETW。
我有一个 WCF 服务和控制台应用程序,我想要它使用 EventSource 来编写消息,但是,我很难理解如何创建自己的 ETW(EventSource 和 EventListener)以记录到文件(滚动文件)。
有什么建议么?
除了magicandre1981的回答,你应该添加: -
TraceEventSession _session = new TraceEventSession(
"yourSessionName", @"C:\yourLogFile.etl")
{
CircularBufferMB = 100 //100mb rolling log file
};
_session.EnableProvider(TraceEventProviders.GetEventSourceGuidFromName(
"Samples-EventSourceDemos-EventLog"), TraceEventLevel.Always);
这可以在与您登录的应用程序相同的应用程序中(进程中),也可以在完全独立的应用程序中(进程外)。
安装Microsoft EventSource 库的 Nuget 包
Install-Package Microsoft.Diagnostics.Tracing.EventSource -Pre
并在派生自 EventSource 的类中定义事件。
现在使用语义日志记录应用程序块来Enterprise Library
使用事件。
这是一个如何使用它的视频:
引入语义日志