要记录输出,我使用以下代码。
System.Diagnostics.Debug.WriteLine("Hello");
现在,始终建议在提交应用程序之前删除此类日志。
因此,在我们提交它以供发布或隐式完成之前,我们必须删除这些行。
有没有另一种更好的方法在 C# 中记录输出,它在发布时将日志记录删除到控制台。我看到 Log4Net 就是其中之一。
要记录输出,我使用以下代码。
System.Diagnostics.Debug.WriteLine("Hello");
现在,始终建议在提交应用程序之前删除此类日志。
因此,在我们提交它以供发布或隐式完成之前,我们必须删除这些行。
有没有另一种更好的方法在 C# 中记录输出,它在发布时将日志记录删除到控制台。我看到 Log4Net 就是其中之一。
System.Diagnostics.Debug 类上的所有方法都具有ConditionalAttribute,因此在大多数编译器下,它们不会被编译到发布版本中(除非您在发布版本中定义了 DEBUG 属性)。1
这对于 Visual Studio 中的编译器来说当然是正确的。
您关于 log4Net 的第二个问题实际上是相反的,如果您决定开始使用 log4Net,则需要注意一些事情 - log4Net 调试调用包含在调试版本中,如果您将记录器设置为调试跟踪级别(通常完成),则会发出使用运行时配置)。
1. MSDN 页面实际上(IMO)有点不清楚,但这些 SO 帖子同意我的解释:
您可以使用预处理器指令:
#if DEBUG
System.Diagnostics.Debug.WriteLine("Hello");
#endif
当您在Release构建配置中构建应用程序时,将跳过该行。