跟踪ASP.NET应用程序中的所有方法调用

时间:2009-10-12 12:25:23

标签: c# asp.net debugging tracing

我需要将ASP.NET应用程序中的所有方法调用一段时间(例如24小时)跟踪到日志文件中。寻找允许我这样做的工具?我有兴趣得到这样的东西:

2009-10-12T13:00:41 MyClass.MyMethod("arg1.toString()", "arg2.toString()") 
... other nested calls inside this method ...
2009-10-12T13:00:42 MyClass.MyMethod() 0.2312 seconds

基本上是一种查看每个方法调用花费的时间和输入内容的方法。

2 个答案:

答案 0 :(得分:3)

您可能需要查看ANTS Profiler。它可以为您提供逐行执行时间,并且可以选择执行.NET框架代码以及您自己的代码。

答案 1 :(得分:2)

您应该查看PostSharp,它可以提供这种功能

来自主页上的示例:

public class TraceAttribute : OnMethodBoundaryAspect 
{ 
  public override void OnEntry( MethodExecutionEventArgs eventArgs) 
  { Trace.TraceInformation("Entering {0}.", eventArgs.Method);  } 

  public override void OnExit( MethodExecutionEventArgs eventArgs) 
  { Trace.TraceInformation("Leaving {0}.", eventArgs.Method);   } 
}

然后将此trace属性应用于要跟踪的方法:

[Trace]
public void MyMethod(int myArg)
{
}

我认为你也可以使用ELMAH(这可能更灵活),但我自己从未使用过它......