2011-12-21 6 views
3

Я создал трассировку xml для своей программы, используя TraceManager Enterprise Library. Он отлично работает. Используя средство просмотра трассировки Microsoft Service, я вижу отдельную трассу для каждого звонка.Запрос файла журнала svc с logParser

Я хотел бы запросить файл, чтобы найти 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>. . . . 

ответ

2

Поскольку в вашем файле SVCLog отсутствует корневой элемент, вы можете вставить его в базовый документ Xml.

XML-документ

<?xml version="1.0" standalone="no" ?> 
<!DOCTYPE Root SYSTEM "Test.dtd"> 
<Root> 
    &svclog; 
</Root> 

ОТД документ

<!ENTITY svclog SYSTEM "SVCLog.xml"> 

где вы объявить ENTITYsvclog импортировать файл SVCLog.

Теперь вы сможете проанализировать вход Xml.