我正在为MS Enterprise Library - Logging Application block尝试hands on labs。
通过添加一个Trace,我在'flat file'监听器上收到一条'消息',上面写着:“ 消息:结束跟踪:活动'6455494c-0602-45c9-8a10-052cdd39e5cb'方法' EnoughPI.Calc.Calculator.Calculate'at at 767616631287998 ticks(经过时间:10.292秒) “
我是否也可以从追踪中“单独”获取经过的时间,或者说已经过去的时间。
谢谢,
答案 0 :(得分:1)
API不会在公共接口上公开计时信息。您可以使用反射来获取信息,但这样做是由您自担风险的(因为它取决于可能发生变化的内部实现):
using (Tracer tracer = new Tracer("General"))
{
FieldInfo fieldInfo = typeof(Tracer).GetField("stopwatch", BindingFlags.NonPublic | BindingFlags.Instance);
var sw = fieldInfo.GetValue(tracer) as Stopwatch;
Console.WriteLine(sw.ElapsedMilliseconds);
}
另一种方法是编写自己的Tracer实现(基于企业库代码),该实现公开您感兴趣的任何属性。