据我所知,System.Console将默认写入stdout,但是System.Diagnostics.TraceSystem.Diagnostics.Debug呢?默认行为是什么,它们是否可以以任何方式配置?
似乎不同的人(在互联网上)使用不同的东西,但我认为我发现的大多数东西都是错误的,因为每个东西都应该有特定的语义,对吧?如果是这样的话,是否有任何框架(如asp.net或wpf)特别使用这些工具?
还有最后一个问题,选择使用哪一个的经验法则是什么?

最佳答案

DebugTrace都写到同一个位置,即Listeners集合。默认情况下,它被路由到visual studio的调试窗口,但是当您不调试时,它会被you can put code in your app.config file重定向到其他位置。
DebugTrace之间的区别在于Debug中的所有方法只有在设置了编译符号(默认为debug打开,release关闭)时才会写出如果未设置符号,则在代码中永远不会调用这些方法。trace查找跟踪符号(debug和release的默认值均为on)。除此之外,这两个类是相同的。实际上,如果修改DEBUG以添加新的侦听器,它也将修改Debug.Listeners,因为两者都指向内部静态属性Trace.Listeners
至于选择使用哪一个,您希望诊断信息以发布和调试模式显示吗?使用跟踪,仅调试?使用调试。是否希望最终用户在不附加调试器的情况下看到它?使用控制台或添加控制台跟踪侦听器。

08-06 18:56