使用代码更改Visual Studio调试控制台中的颜色

8
好的,我继承了一些代码,开始编写代码的人有一个坏习惯,就是压制异常,这让我的生活变得困难。因此,当我查看代码时,我试图在catch块中添加一些内容,以便我可以弄清楚发生了什么。由于这是一个Windows表单应用程序,我不能直接将文本写入控制台,但我可以将文本写入调试控制台。我希望在碰到这些(以前)被压制的异常时改变文本前景色,以便我可以在调试时轻松地找到它们。当然,写入调试控制台的另一个原因是客户在最终设计中不会看到这些消息。是否有任何方法可以实现这一点?我尝试了以下代码,但它并没有完全达到我的要求。
catch 
     {
        ConsoleColor tempColor = Console.ForegroundColor;
        StackTrace stackTrace = new StackTrace();
        Console.ForegroundColor = ConsoleColor.Red;
        System.Diagnostics.Debug.WriteLine("Exception Thrown: " + stackTrace.GetFrame(0).GetMethod().ToString());
        Console.ForegroundColor = tempColor;
     }

1
比使用调试控制台更容易:按下Ctrl + Alt + E,选择“Common Language Runtime Exceptions”下的“Thrown”。因此,即使您压制了错误,开发人员也会看到它们。 - gunr2171
是的,但这里有几个问题。我注意到有相当多的未处理异常,所以每次抛出异常时它都会弹出一个弹出窗口,这可能很烦人(就像当你批量复制文件时,Windows因为存在文件a.txtb.txt... z.txt的副本而警告你,一次只能一个地处理。在某些情况下,它变成了“喊狼来了”的类型)。另一个更重要的问题是,我正在工作的软件大量使用DLL,所以调试器无法告诉我异常是在哪里抛出的,只能告诉我DLL的名称。 - audiFanatic
也许我错了,但我相信您无法控制调试控制台。一个解决方法是在日志前添加一些标头(比如 [^^^^^^ERROR^^^^^]),以便能够通过视觉方式捕获它们,而不是更改颜色。 - Gusman
2个回答

8

7
这很脏 ;) - Rob

7

似乎没有任何方法可以改变颜色。

但是,使用WriteLine方法的类别选项将允许您格式化标题行和消息行:

Debug.WriteLine("\n\tError Message","Error Message 1");

输出应该类似于这样:
Error Message 1:
    Error Message

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接