2014-11-06 84 views
7

我试图在Visual Studio 2010中调试C#/ .Net程序,但它对时间敏感,所以断点将其搞乱。所以我只想记录某些事件及其相对时间,并在程序运行时观察它们。Visual Studio调试日志(如Android中的logcat)?

Visual Studio(或C#或.Net)是否有任何用于写入Visual Studio可以显示为调试窗口的日志文件的功能?

当我在Eclipse中做Android开发,我可以把他们的Log类的优势,并插入看起来像这样在我的代码行:

Log.d("Label1", "Hit checkpoint X"); 

他们将在logcat中与时间/日期戳一起出现在Eclipse中与其他窗口一起显示的窗口。

在Visual Studio 2010中与此最接近的是什么?

+0

您在视觉工作室有快速观看 – 2014-11-06 18:00:46

回答

6

您可以设置一个不会实际中断的断点,而是输出日志消息。只需设置一个断点,然后右键单击断点并选择“When Hit ...”。

从该对话框中选择“打印信息”和“继续执行”

Dialog screenshot

+0

信息出现在哪里? – user316117 2014-11-06 18:04:09

+0

在输出窗口中(查看 - >输出) – heavyd 2014-11-06 18:04:49

+0

有什么方法在消息中嵌入或显示局部变量的内容? – user316117 2014-11-06 18:31:16

2

没有真正建立在酷似logcat的东西,但也有很多,你可以使用日志框架。

就我个人而言,我喜欢使用NLog并在我的配置文件中设置UDP跟踪/调试目标以及将所有记录器转发到目标的规则。我认为NLog比Log4Net(Log4j的.NET端口)更易于使用。一旦你这样做,你可以创建一个从管理器记录并调用记录仪就像logcat的android系统:

Logger logger = LogManager.GetLogger("MyClassTag"); 

logger.Trace("Something to log"); 
logger.Debug("Something to log"); 
logger.Info("Something to log"); 
logger.Warn("Something to log"); 
logger.Error("Something bad to log", exception); 
logger.Fatal("Something bad to log", exception); 

对于听我用Log2Console的UDP包的记录,让我看到他们就像Android的logcat的浏览器。

+0

让我知道你是否需要一些帮助来设置它。一旦得到它就很简单,但它确实有一点学习曲线。 – JNYRanger 2014-11-06 18:09:44

+0

这看起来像是很多额外的工作和开销,必须使用第三方工具并将东西放入配置文件中。我很惊讶像Visual Studio和.Net这样成熟的开发环境没有内置此功能。 heavyd的答案有点接近我需要的,但我给了你+1的努力。 – user316117 2014-11-06 18:32:08

+0

@ user316117是的,这有点令人惊讶,而且我并不是这个方法的忠实粉丝,只是因为它有多么有限。不过,我完全看到你的观点,认为它可以被认为有点过分,但它的足迹不算太坏。这是一个非常好的框架,一旦你设置了这个单一的配置文件(只是一点点的xml),使你可以用Logcat完成你的工作,这非常容易使用。 – JNYRanger 2014-11-06 18:39:05