Cur*_*der 6 c# system.diagnostics
我在我的日志中打印了很多行,同时调试如下:
System.Diagnostics.Debugger.Log(0, null, responseFromServer);
System.Diagnostics.Debugger.Log(0, null, t[0]);
....
Run Code Online (Sandbox Code Playgroud)
所有这些都在同一条线上印刷.我怎样才能让它们以单独的线条印刷?
我试过用
System.Diagnostics.Debugger.Log(0, null, t[0]+"\n");
Run Code Online (Sandbox Code Playgroud)
但是,它没有用.任何帮助将不胜感激 .谢谢
在.NET中,成语Environment.NewLine
是System.String
由System.Char
终止一行文本的正确组成的,所以:
System.Diagnostics.Debugger.Log(0, null, t[0] + Environment.NewLine);
Run Code Online (Sandbox Code Playgroud)
[2015-05-07更新]
就在这几年的反思,我觉得我滴入此至少一点点(球虽然,我不认为这是能够做到的低层换行是非常重要的,而无需有时拼的语言,以及;所以我也喜欢原来的答案...)
首先,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]);
Run Code Online (Sandbox Code Playgroud)
十分简单.
但更好的是,为什么不Trace
呢?
我将在这里指出这个stackoverflow问题,但这里是要点.
您可以在App.config中进行设置,但当然您也可以以编程方式创建它,因为app.config部分只是创建对象!
就像是:
? <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]);
Run Code Online (Sandbox Code Playgroud)
是的,这是多目标; 并且您可以将其设置为多目标,并且您可以使用内置System.Diagnostics
Trace
类型(例如,Console
如果您想要在屏幕上打印,则可以使用跟踪器),也可以根据需要创建自己的自定义类型.美丽!
最后一句话:Debug和Trace都有很多辅助函数,可以使你做的任何写操作更具象征性; WriteLineIf,TraceError等等,直到你找出它们为什么存在它们才能玩它们.它几乎保证你越使用它们,越有用,你会发现他们.♡
归档时间: |
|
查看次数: |
7620 次 |
最近记录: |