如何让 Debug.WriteLine 在 Release 模式下写入输出 window?
How do I get Debug.WriteLine to write to the output window in Release mode?
好的,我意识到这个问题听起来很荒谬。为什么要在发布模式下调试?我正在尝试实现一个 ILogger 接口,该接口在实现时会提供一个用于日志记录的外观(显然)。在大多数情况下,该外观会写出到企业库——因此它已经有一个带有自己配置的调试方法。问题是,除了写入文件的正常行为之外,我只是将 Debug.WriteLine("msg") 行添加到外观,当我在发布模式下构建它时,那些调试语句不会使用它进行编译,因此当使用来自不同项目的库时它不会写入控制台,即使该项目是在调试中构建的。
我想要设置这个外观,以便无论它是如何构建的,所有 Logger.Debug 消息都将输出到 window 而不仅仅是 MEL 生成的文件。我可以将 System.Diagnostics 对象设置为始终编译,还是可以设置企业库以将输出用作配置的侦听器?
您可以改用Trace.WriteLine
。只需确保 TRACE
在发布设置中定义(默认情况下)。
从技术上讲,您可以通过项目设置或明确地在发布模式下定义 DEBUG
:
#define DEBUG
但这会很奇怪。
好的,我意识到这个问题听起来很荒谬。为什么要在发布模式下调试?我正在尝试实现一个 ILogger 接口,该接口在实现时会提供一个用于日志记录的外观(显然)。在大多数情况下,该外观会写出到企业库——因此它已经有一个带有自己配置的调试方法。问题是,除了写入文件的正常行为之外,我只是将 Debug.WriteLine("msg") 行添加到外观,当我在发布模式下构建它时,那些调试语句不会使用它进行编译,因此当使用来自不同项目的库时它不会写入控制台,即使该项目是在调试中构建的。
我想要设置这个外观,以便无论它是如何构建的,所有 Logger.Debug 消息都将输出到 window 而不仅仅是 MEL 生成的文件。我可以将 System.Diagnostics 对象设置为始终编译,还是可以设置企业库以将输出用作配置的侦听器?
您可以改用Trace.WriteLine
。只需确保 TRACE
在发布设置中定义(默认情况下)。
从技术上讲,您可以通过项目设置或明确地在发布模式下定义 DEBUG
:
#define DEBUG
但这会很奇怪。