我正在使用Glimpse和MVC4,我想捕获Glimpse的时间线标签数据并将其存储在数据库或文件中以用于报告目的。
答案 0 :(得分:5)
有几种方法可以做到这一点,但我会为您提供答案,为您提供最高级别的粒度,也是covered on Scott Hanselman's blog。
Hanselman展示了如何创建以下IInspector
实现:
using Glimpse.Core.Extensibility;
using Glimpse.Core.Message;
public class TimelineTracer : IInspector
{
public void Setup(IInspectorContext context) {
context.MessageBroker.Subscribe<ITimelineMessage>(TraceMessage);
}
private void TraceMessage(ITimelineMessage message) {
var output = string.Format(
"{0} - {1} ms from beginning of request. Took {2} ms to execute.",
message.EventName,
message.Offset.Milliseconds,
message.Duration.Milliseconds);
System.Diagnostics.Trace.TraceInformation(output, message.EventCategory.Name);
}
}
如果您将此类添加到您的解决方案中,它将由Glimpse自动发现,并且每次将记录添加到Glimpse时间线时都会调用TraceMessage
方法。
Scott只是将这些信息跟踪出来,可以在Azure Streaming Diagnostics服务中看到。您可以将数据保存到数据库(或其他内容),以便稍后进行分析。