我已经像这样将一个XMLWriterTraceListener对象添加到我的跟踪侦听器中,
System.Diagnostics.XmlWriterTraceListener xmlTrace = new
System.Diagnostics.XmlWriterTraceListener("Trace.xml");
xmlTrace.IndentLevel = 1;
xmlTrace.IndentSize = 4;
System.Diagnostics.Trace.Listeners.Add(xmlTrace);
它成功地接收到来自 Trace.WriteLine()、Trace.TraceInformation() 等的消息。唯一的问题是它正在写入的 Trace.xml 文件不可读,因为它不包含换行符或缩进。我是否遗漏了一个中间步骤(XMLStreamWriter?)来完善输出?
当前输出显示:
<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system"><EventID>0</EventID><Type>3</Type><SubType Name="Information">0</SubType><Level>8</Level><TimeCreated SystemTime="2014-03-20T18:05:43.2778822Z" /><Source Name="Program.vshost.exe" /><Correlation ActivityID="{00000000-0000-0000-0000-000000000000}" /><Execution ProcessName="Program.vshost" ProcessID="6840" ThreadID="9" /><Channel/><Computer>ODYSSEY</Computer></System><ApplicationData>Startup!</ApplicationData></E2ETraceEvent>
但我希望它阅读:
<E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent">
<System xmlns="http://schemas.microsoft.com/2004/06/windows/eventlog/system">
<EventID>0</EventID>
<Type>3</Type>
<SubType Name="Information">0</SubType>
<Level>8</Level>
<TimeCreated SystemTime="2014-03-20T18:05:43.2778822Z" />
<Source Name="Program.vshost.exe" />
<Correlation ActivityID="{00000000-0000-0000-0000-000000000000}" />
<Execution ProcessName="Program.vshost" ProcessID="6840" ThreadID="9" />
<Channel/>
<Computer>ODYSSEY</Computer>
</System>
<ApplicationData>Startup!</ApplicationData>
</E2ETraceEvent>