Ron*_*rby 5 .net debugging logging visual-studio
我的日志库有一个简单的DebugLogger,如下所示:
public class DebugLogger : Logger
{
protected override void PerformLogging(string entry)
{
Debug.WriteLine(entry);
}
}
Run Code Online (Sandbox Code Playgroud)
日志库已在RELEASE模式下构建。
正在开发引用日志记录库的应用程序DEBUG模式中开发。
问题是,当使用日志库的应用程序调用时,DebugLogger.PerformLogging("some debug message")Visual Studio 调试输出中不会显示任何内容。
我已经验证当日志记录程序集以模式构建时,事情确实按预期工作DEBUG。
我原以为处于DEBUG模式的入口程序集会优先,但看起来情况并非如此。
有什么可以做的吗?
http://msdn.microsoft.com/en-us/library/6x31ezs1.aspx在备注部分讨论了编译器忽略未定义的 Debug 方法DEBUG。
如何Debug.WriteLine处理调用是在编译包含调用的项目时确定的。Debug.WriteLine在这种情况下,C# 编译器会看到对 Release 项目(DEBUG未定义)的调用,因此不会将调用发出到生成的 IL 中。此时,该PerformLogging方法没有引用Debug.WriteLine,因此任何类型的构建中的调用都不会执行调用Debug.WriteLine。