控制台的替代方案.WriteLine用于日志/跟踪



在我的应用程序中,目前我使用

#if DEBUG
Console.WriteLine(....)
#endif

在许多地方。这是一种临时措施,而且很好,但我想知道我应该如何正确地做这件事。有人顺便向我简要地提到了NSLog,但我找不到任何Monotouch和NSLog信息,我不确定如何检索这些信息,以便我可以看到发生了什么。

最后,如果有人正在使用任何特定的策略来进行崩溃扣除和堆栈跟踪,我洗耳恭听。

你应该充分利用c#语言中的[条件]支持。

将此属性添加到方法中,如下所示:

class Util { 
     [Conditional ("DEBUG")]
     void Log (string msg)
     { 
         Console.WriteLine (msg);
     }
 }

你可以这样写代码:

 Util.Log ("Starting");
 DoSomething ();
 Util.Log ("Ending");

如果定义了DEBUG符号,上面的代码将编译这三行,但如果没有定义符号,编译器将只生成DoSomething代码。

这允许你在程序中保留调试代码,并通过使用编译器定义来打开/关闭它。

然后将DEBUG作为定义之一添加到DEBUG配置文件中。同样的技术可以应用于其他配置构建,你可以使用上面的模拟器vs设备或调试vs AppStore vs AdHoc

最新更新