我正在尝试设置一个简单的 ETW 和EventFlow示例,以允许监视特定的 ETW 提供程序。在这种情况下,服务控制管理器 ETW 提供程序将监视何时发出服务启动和停止消息。
我有以下用于跟踪和 ETW 的输入配置。
"inputs": [
{
"type": "Trace",
"traceLevel": "Warning"
},
{
"type": "ETW",
"providers": [
{
"providerName": "Service Control Manager"
}
]
}]
我有以下代码使用 EventFlow 启动监控。
static void Main(string[] args)
{
using (var pipeline = DiagnosticPipelineFactory.CreatePipeline("eventFlowConfig.json"))
{
System.Diagnostics.Trace.TraceWarning("EventFlow is working!");
Console.ReadLine();
}
}
跟踪事件出现在控制台中,但是当我启动和停止服务时,没有出现 ETW 事件。
EventFlow 是为本地机器上的这种场景设计的吗?如果是这样,我的配置或代码中缺少什么?
控制台进程以管理员身份运行,并且该帐户有权访问 Performance Log Users 和 Performance Log Monitors 组