2010-05-31 17 views
2

我想实现一种方法来跟踪为.net v4.0编写的应用程序中的每行代码。.net v4的全自动应用程序跟踪

就是一个例子。如果我有以下功能。

private bool hasValue(string value) 
{ 
if(string.isnullorempty(value) 
{ 
return false; 
} 
else 
{ 
return true; 
}} 

然后当函数被调用我想详细跟踪日志包含这样的事情:

函数调用| 10号线|特色私人布尔hasValue的(字符串值)| ValuesPassed hasValue的(“”) 线评估|第11行|如果(string.isnullorempty(值)| ValuesPassed如果(string.isnullorempty(“”) - 返回评测真正 进入13号线|签名返回false |采取行动回报

此跟踪可以手动完成,但它的一个。大量的工作,并且将脏的代码。是不是有一种方式来获得这一水平与.NET或第三方插件自动跟踪的?

谢谢

回答

1

虽然你将无法得到线高低自动跟踪,你可以获得方法级别使用面向方面的编程,其中的代码可以在生成后,在方法入口\出口点被编织跟踪。您编写的代码可以跟踪方法名称,参数和值等。像PostSharp的工具可以自动为你做到这一点:

http://www.sharpcrafters.com/solutions/monitoring#tracing

+0

我认为PostSharp最接近实现这个目标,下面的链接可能有助于通过cruft杂草:http://www.sharpcrafters.com/solutions/monitoring#tracing – 2011-01-07 19:56:47

+0

@John干杯的更新,我有除去帖子并更新链接。 – 2011-01-07 20:12:15

4

我不知道任何框架的那会为这种事情工作,但我想反驳几个问题。

  1. 您认为这种详细追踪的效用是什么?在我看来,一些有针对性的跟踪语句足以满足大多数调试问题。

  2. 此跟踪是否将用于现场解决方案?如果是这样,启用时可能会非常昂贵(在执行时间方面)。

  3. 您的应用程序有多大?除非它很小,否则解析由您所需的跟踪解决方案生成的日志文件可能比单独实施一些有针对性的跟踪更有效。

0

Runtime Flow(由我开发)提供的.NET 4.0的应用程序自动功能级别跟踪。