我使用企业库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>
Log生成许多行,如:
< E2ETraceEvent xmlns="http://schemas.microsoft.com/2004/06/E2ETraceEvent"><System <EventID>1</EventID><Type>3</Type>. . . .
答案 0 :(得分:2)
由于您的SVCLog文件缺少根元素,您可以将其嵌入到基本的Xml文档中。
Xml文档
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE Root SYSTEM "Test.dtd">
<Root>
&svclog;
</Root>
DTD文件
<!ENTITY svclog SYSTEM "SVCLog.xml">
您声明导出SVCLog文件的ENTITY
svclog 。
现在您应该能够解析Xml输入。