Отслеживание всех вызовов методов в приложении ASP.NET - PullRequest
4 голосов
/ 12 октября 2009

Мне нужно отследить все вызовы методов в приложении 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 ]

3 голосов
/ 13 октября 2009

Возможно, вы захотите посмотреть ANTS Profiler . Он может дать вам построчное время выполнения и имеет возможность делать код платформы .NET, а также свой собственный.

2 голосов
/ 12 октября 2009

Вы должны взглянуть на 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]
public void MyMethod(int myArg)
{
}

Я думаю, вы также можете использовать ELMAH (что, вероятно, более гибко), но я никогда не использовал его сам ...

...