Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在释放系统之前删除日志。诊断_C#_Logging_Windows Phone 8 - Fatal编程技术网

C# 在释放系统之前删除日志。诊断

C# 在释放系统之前删除日志。诊断,c#,logging,windows-phone-8,C#,Logging,Windows Phone 8,要记录输出,我使用以下代码 System.Diagnostics.Debug.WriteLine("Hello"); 现在,它总是建议在提交应用程序之前删除这些日志 所以,在我们提交发布或隐式完成之前,我们必须删除这些行 有没有其他更好的方法在C#中记录输出,当其被释放时,它会删除对控制台的记录。我知道Log4Net就是其中之一。您可以使用预处理器指令: #if DEBUG System.Diagnostics.Debug.WriteLine("Hello"); #endif 在发

要记录输出,我使用以下代码

 System.Diagnostics.Debug.WriteLine("Hello");
现在,它总是建议在提交应用程序之前删除这些日志

所以,在我们提交发布或隐式完成之前,我们必须删除这些行


有没有其他更好的方法在C#中记录输出,当其被释放时,它会删除对控制台的记录。我知道Log4Net就是其中之一。

您可以使用预处理器指令:

#if DEBUG
    System.Diagnostics.Debug.WriteLine("Hello");
#endif

在发布版本配置中生成应用程序时,将跳过该行。

System.Diagnostics.Debug类上的所有方法都具有该行,因此在大多数编译器中,它们不会编译为发布版本(除非在发布版本中定义了Debug属性)。一,

对于VisualStudio中的编译器来说,这当然是正确的

关于log4Net的第二个问题实际上是相反的,如果您决定开始使用log4Net,则需要注意一些事项-log4Net调试调用包含在调试构建中,并且在将记录器设置为调试跟踪级别(通常通过运行时配置完成)时发出


一,。MSDN页面实际上(IMO)有点不清楚,但这些帖子与我的解释一致:


谢谢。但是如果我使用过100个地方,我需要在每个地方添加这个指令。你确定吗?我一直认为,由于[ConditionalAttribute],调试类的方法不会编译到发布版本中。这篇帖子似乎说了同样的话@DavidHall,没错。IDE隐式删除它以供发布。我确实检查了文件,但我对这门语言还不熟悉,所以错过了这么一件小事。