我试图在我的应用程序中"注入"自定义跟踪方法.
我希望尽可能优雅,不需要修改现有的大部分代码,并且可以轻松启用/禁用它.
我能想到的一个解决方案是创建一个自定义Attribute,我将它附加到我想要跟踪的方法.
基本理念:
public class MethodSnifferAttribute : Attribute
{
private Stopwatch sw = null;
public void BeforeExecution()
{
sw = new Stopwatch();
sw.Start();
}
public void ExecutionEnd()
{
sw.Stop();
LoggerManager.Logger.Log("Execution time: " + sw.ElapsedMilliseconds);
}
}
public class MyClass
{
[MethodSniffer]
public void Function()
{
// do a long task
}
}
Run Code Online (Sandbox Code Playgroud)
是否有任何现有.NET属性为调用/结束方法提供回调?
我想避免编写我自己的通用日志记录接口,而是使用内置Trace功能,从一开始就不需要任何日志记录库.在我处理日志库之前,我已经在至少输出窗口中有我的跟踪信息,在这个开发阶段就足够了.
然后我想在我的应用程序中添加一个日志库,并Trace通过一个监听器耦合到它,而不是再写入日志代码.
您对此策略有何看法,并且是这些日志库的跟踪侦听器,还是其他可能或可行的快速实现的Enterprise Library?