我在我的日志中打印了很多行,同时调试如下:
System.Diagnostics.Debugger.Log(0,null,responseFromServer); System.Diagnostics.Debugger.Log(0,t[0]); ....
所有这些都在同一条线上印刷.我怎样才能让它们以单独的线条印刷?
我试过用
System.Diagnostics.Debugger.Log(0,t[0]+"\n");
但是,它没有用.任何帮助将不胜感激 .谢谢
解决方法
在.NET中,成语Environment.NewLine是一个System.String,它由适当的System.Char组成,用于终止一行文本,因此:
System.Diagnostics.Debugger.Log(0,t[0] + Environment.NewLine);
[2015-05-07更新]
几年之后反思这一点,我觉得我至少在这一点上放弃了这一点(尽管如此,我认为能够做一些低级别的NewLine而不必有时候也不用语言也很重要;所以我也喜欢原来的答案…)
首先,David Brown确实给出了一个很好的答案:使用System.Diagnostics.Debug.WriteLine(和Write)代替.这是一个很好的解决方案,特别是在OP的情况下,因为调用的其他参数甚至没有被使用;并且Debug.Write / WriteLine调用看起来像这样(例如,使用OP的原始调用,假设为了示例,OP的原始第一个参数responseFromServer已经终止,第二个需要终止):
System.Diagnostics.Debug.Write(responseFromServer); System.Diagnostics.Debug.WriteLine(t[0]);
十分简单.
但更好的是,为什么不跟踪?
我会指出你到this stackoverflow question here,但这是要点.
就像是:
⋮ <trace> <!-- note: notional notation only --> <add name="consoleLog" logLevel="debug" enabled="" type="⋯ <add name="netLog" logLevel="verbose" enabled="false" addr="rdp://127.0.0.1:1935/nothing/stream" type="⋯ <add name="fileLog" logLevel="errors" enabled="true" file="c:\boots.ini" type="⋯ </trace> ⋮
然后你的代码调用Trace()就像Debug()一样.
System.Diagnostics.Trace.Write(responseFromServer); System.Diagnostics.Trace.WriteLine(t[0]);
是的,这是多目标;并且您可以将其设置为多目标,并且您可以使用内置的System.Diagnostics跟踪类型(例如,如果要打印到屏幕,则可以使用控制台跟踪器),也可以创建自己的自定义类型有必要的.美丽!
最后一句话:Debug和Trace都有很多辅助函数,可以使你做的任何写操作更具象征性; WriteLineIf,TraceError等等,直到你找出它们为什么存在它们才能玩它们.几乎可以肯定,你使用它们越多,你就会发现它们越有用. ♡