vel.Verbose, EventKeywords.AuditFailure);
}
else if (eventSource.Name.Equals("System.Data.DataCommonEventSource"))
{
EnableEvents(eventSource, EventLevel.Verbose, EventKeywords.AuditFailure);
}
else if (eventSource.Name.Equals("Microsoft-AspNetCore-Server-Kestrel"))
{
EnableEvents(eventSource, EventLevel.Verbose, EventKeywords.AuditFailure);
}
}
5.5 再次运行程序,看下图输出结果
从图中可以看出,这次我们跟踪到了 Microsoft-AspNetCore-Server-Kestrel 事件源生产的开始和结束连接事件
结束语
- 在 CoreCLR 的事件总线中,包含了千千万万的事件源生产的事件,以上的实验只是冰山一角,如果你把创建事件源的 EventKeywords 指定为 All,你将会看到天量的日志信息,但是,在这里,友情提示大家,千万不要这样做,这种做法会对服务性能带来极大损害
- 在业务代码中,写入大量的调试日志是不可取的,但是使用事件侦听器,可以控制事件的创建和写入,当需要对某个接口进行监控的时候,通过将需要调试的事件源加入配置文件中进行监控,这将非常有用
示例代码下载
https://github.com/lianggx/EasyAspNetCoreDemo/tree/master/Ron.ListenerDemo
|