我希望在每个函数Entry和Exit中进行跟踪。说我的类包含三个方法MethodA MethodB MethodC ...通过实例有人调用MethodA和methodA调用MethodB和MethodB调用methodC
public class test
{
Public void MethodA()
{
MethodB();
}
public void MethodB()
{
// Some Operation
MethodC();
}
public void MethodC()
{
//Some Operation
}
}
现在有人打电话给测试obj = new test();和obj.MethodA();我希望跟踪器在数据库中写入下一行“输入方法B”中的“输入方法B”下一行“输入方法C”然后“退出方法C”“退出方法B”,最后“退出方法a”
我的限制是:我不应该在每个方法入口和出口中编写此跟踪代码。我希望这会自动发生。只需将App.config文件的密钥设置为true,跟踪器就应该启动操作,false表示跟踪禁用。
我们想要调试Live生产应用程序。
要做到这一点,我们有两种方法:
使用Policy Injection Applicaiton块使用策略包装Test类的实例:从ICallHandler创建一个policyhandler,然后创建一个MatchingRule,在MatchingRule中读取app.config文件,如果启用了Tracing则返回true,否则返回false。
这样做的缺点是:每当我们通过Policy容器创建任何类的实例时,系统将读取app.config文件,然后读取配置文件中存在的策略,即使禁用了跟踪...这可能会降低性能......
我们发现了另一种方法,即Logging类存在于Logging Application Block中。它有类似方法输入方法退出功能。 http://www.michaelhamrah.com/blog/2010/02/performance-tracing-for-your-applications-via-enterprise-library/
请提供更多关于Tracer课程的想法。我的要求是否适合插入Tracer类。
非常感谢,
苏拉杰