在发布System.Diagnostics之前删除Log

本文关键字:删除 Log Diagnostics System | 更新日期: 2023-09-27 18:08:07

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

 System.Diagnostics.Debug.WriteLine("Hello");

现在,总是建议在提交应用程序之前删除这些日志。

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

是否有其他更好的方法在c#中记录输出,当它被释放时将日志删除到控制台。我看到Log4Net就是其中之一。

在发布System.Diagnostics之前删除Log

System.Diagnostics.Debug类上的所有方法都有ConditionalAttribute,所以在大多数编译器下,它们不会被编译到发布版本中(除非你在发布版本中定义DEBUG属性)。1 <一口>

这对于Visual Studio中的编译器来说当然是正确的。

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


<一口> 1。 MSDN页面实际上(IMO)有点不清楚,但这些SO帖子同意我的解释:

System.Diagnostics.Debug。产品代码中的WriteLine

c#在发布模式下运行时,调试语句得到编译吗?

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

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

当您在Release build configuration中构建应用程序时,将跳过这一行。