我使用 Enterprise Library TraceManager 为我的程序生成了一个 xml 跟踪。它工作得很好。使用 Microsoft 服务跟踪查看器,我可以看到每个调用的单独跟踪。
我很想查询该文件,所以我找到了 Microsoft Logparser,并希望我可以使用它。不幸的是,我无法弄清楚预期的输入格式。XML 输入返回为文档找到多个根节点的错误。其他格式都没有解析正确的行数。
有没有人成功查询 SVCLog 文件
TraceManager traceManager
traceManager = EnterpriseLibraryContainer.Current.GetInstance<TraceManager>();
TraceLogEntry traceEntry = new TraceLogEntry();
using (this.traceManager.StartTrace("Tracing")){
traceEntry.Title = "Message";
traceEntry.Priority = Priority;
this.traceManager.LogWriter.Write(traceEntry);
}
跟踪类别连接到 XML 跟踪侦听器:
< loggingConfiguration name="" tracingEnabled="true" defaultCategory="General">
< listeners>
< add name="XML Trace Listener" type="Microsoft.Practices.EnterpriseLibrary.Logging.TraceListeners.XmlTraceListener, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.XmlTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
fileName="c:\A2ISOtrace.svclog" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId" />
< /listeners>
< categorySources>
< add switchValue="All" name="Tracing">
< listeners>
< add name="XML Trace Listener" />
< /listeners>
< /add>
< /categorySources>
日志产生许多行,如:
< E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System <EventID>1</EventID><Type>3</Type>. . . .