禁用调试输出
回答
当您切换到发行版时,所有对System.Diagnostics.Debug.Print()
的呼叫都将被删除。
查看System.Diagnostics.Debug和System.Diagnostics.Trace类。
使用Log4net在调试级别以发布和警告或生产错误级别进行日志记录。
受益于此,如果您在开发环境中遇到问题而无法重新创建,则可以在发布环境中重新开启日志记录。
[编辑] FWIW,我发现我现在做一个LOT更少的调试日志记录,现在我使用测试驱动开发。我的大部分日志都是警告/错误变化。
您可以使用Trace来代替调试 – 2008-10-21 19:14:38
#if DEBUG
System.Console.WriteLine("Message");
#endif
调试和跟踪相关但不同的活动。 System.Diagnostics
命名空间同时支持它们。
使用Debug.Write/WriteLine
将调试消息写入日志文件。 (并输出到窗口。)使用Debug.Assert
,几乎无处不在。如果您未在代码中定义DEBUG符号,则在编译前删除使用Debug
类编写的所有代码 - 默认情况下,Debug和Release配置的选项会执行该代码。使用Trace.Write/WriteLine
编写跟踪消息。这些方法在功能上等同于Debug类的方法;不同之处在于如果您未在代码中定义TRACE符号,它们将被删除。
调试和跟踪类也有其他类的基础设施,如TextWriterTraceListener
,允许你做一些漂亮的事情,比如将跟踪日志的输出从磁盘上的本地文件更改为Web服务(或什么都不),只需编辑应用程序配置文件。我最喜欢的技巧是实现一个TextWriter
,它可以将文本写入TextBox
,并使用它将所有调试和跟踪输出重定向到UI。
您还可以在应用配置文件中设置WriteIf
和WriteLineIf
方法所尊重的标志,但根据我的经验,这些标志相当笨拙。
我发现,一般来说,如果我建立自己的静态类来包装Trace
方法,我会更开心。这可以让我做一些事情,比如只需设置我的Trace
类的属性即可在UI中打开和关闭跟踪。
最后:如果你需要的仪器您的应用程序做类似的东西跟踪时,每个方法的开始和结束,使用该工具是化腐朽为神奇PostSharp。
您还可以查看面向方面编程解决方案。他们确实做得很好。看看PostSharp是一个很好的实现。他们的示例代码通常包含您正在寻找的示例。
- 1. 禁用调试输出和xmlsec
- 2. 在(html)中禁用jettys调试输出单元测试
- 3. 如何在PHP中禁用Curl调试输出
- 4. nosetests与tensorflow:大量的调试输出,如何禁用
- 5. Android.mk调试输出
- 6. Blackberry调试输出
- 7. phpthumb - 禁用输出
- 8. Visual Studio:禁止每个DLL的调试输出
- 9. LIBXML2:在控制台上禁止调试输出
- 10. VisualStudio:无调试输出
- 11. Visual Studio 2010 - 调试输出
- 12. 输出获取调试
- 13. 输出浮动调试
- 14. LogCat输出调试帮助
- 15. Signtool使用调试选项的输出
- 16. 启用调试输出从铛
- 17. pygtk控制台输出用于调试
- 18. 用于调试的Java调试控制台输出
- 19. 禁用apache.http.wire调试日志
- 20. 禁用JVM调试的JMap
- 21. 禁用调试错误?
- 22. 禁用模块输出Magento
- 23. 禁用QT highgui输出
- 24. 禁用IIS默认输出
- 25. 禁用休眠输出
- 26. 禁用WindowsAzure.ServiceRuntime详细输出
- 27. 调用输出
- 28. 试图重定向输入和输出使用系统调用
- 29. 禁止CMD输出
- 30. 当禁用输出转义不被支持时XSLT禁用输出转义
如果您希望在发布和调试中使用语句,还可以使用Trace。 – 2008-10-21 19:15:09